다음 zero decimals
과 같이 숫자 값에서 제거하는 빠른 방법을 찾으려고합니다 .
echo cleanNumber('125.00');
// 125
echo cleanNumber('966.70');
// 966.7
echo cleanNumber(844.011);
// 844.011
이를 위해 최적화 된 방법이 있습니까?
답변
$num + 0
트릭을 수행합니다.
echo 125.00 + 0; // 125
echo '125.00' + 0; // 125
echo 966.70 + 0; // 966.7
내부적으로 이것은 플로팅 (float)$num
이나 캐스팅과 동일 floatval($num)
하지만 더 간단합니다.
답변
당신은 floatval
기능을 사용할 수 있습니다
echo floatval('125.00');
// 125
echo floatval('966.70');
// 966.7
echo floatval('844.011');
// 844.011
답변
이것이 내가 사용하는 것입니다 :
function TrimTrailingZeroes($nbr) {
return strpos($nbr,'.')!==false ? rtrim(rtrim($nbr,'0'),'.') : $nbr;
}
NB .
소수점 구분 기호로 가정합니다 . 플로트 캐스트가 없기 때문에 임의로 큰 (또는 작은) 숫자로 작동한다는 이점이 있습니다. 또한 숫자를 과학적 표기법 (예 : 1.0E-17)으로 바꾸지 않습니다.
답변
단순히 +
문자열 변수에 추가 하면 타입 캐스트가 (부동) 발생 하고 0이 제거됩니다.
var_dump(+'125.00'); // double(125)
var_dump(+'966.70'); // double(966.7)
var_dump(+'844.011'); // double(844.011)
var_dump(+'844.011asdf');// double(844.011)
답변
쉼표로 동일한 문제가있는이 사이트를 방문하는 모든 사람을 위해 다음을 변경하십시오.
$num = number_format($value, 1, ',', '');
에:
$num = str_replace(',0', '', number_format($value, 1, ',', '')); // e.g. 100,0 becomes 100
이 경우 두 개의 제로 제거 할, 그럼 같이 변경 :
$num = str_replace(',00', '', number_format($value, 2, ',', '')); // e.g. 100,00 becomes 100
자세한 내용은 여기 : PHP 번호 : 만 볼 수 필요한 경우 소수점
답변
페이지 또는 템플리트에 표시하기 직전에 0 자리를 제거하려는 경우.
sprintf () 함수를 사용할 수 있습니다
sprintf('%g','125.00');
//125
sprintf('%g','966.70');
//966.7
sprintf('%g',844.011);
//844.011
답변
당신은 당신을 위해 이것을 할 수있는 수레로 캐스팅해야합니다.
$string = "42.422005000000000000000000000000";
echo (float)$string;
이것의 결과는 당신이 찾고있는 것입니다.
42.422005