如果我在javascript({a'等于2.4232)中有a.toFixed(3);
,那么在php中检索它的确切等效命令是什么?我搜索了它,但没有找到适当的解释。
答案 0 :(得分:20)
PHP中的完全等效命令是函数number_format:
number_format($a, 3, '.', ""); // 2.423
这是一个实用的功能:
function toFixed($number, $decimals) {
return number_format($number, $decimals, '.', "");
}
toFixed($a, 3); // 2.423
答案 1 :(得分:17)
答案 2 :(得分:5)
我发现sprintf
和number_format
都围绕这个数字,所以我使用了这个:
$number = 2.4232;
$decimals = 3;
$expo = pow(10,$decimals);
$number = intval($number*$expo)/$expo; // = 2423/100
答案 3 :(得分:3)
直接等效为sprintf('%.03F', $a)
。这会将有问题的值格式化为带有3位十进制数字的数字。如果需要,它也会圆。
答案 4 :(得分:1)
在PHP中,您可以使用名为round的函数。
答案 5 :(得分:1)
这是翻译:
function toFixed($number, $dec_length){
$pos=strpos($number.'', ".");
if($pos>0){
$int_str=substr($number,0,$pos);
$dec_str=substr($number, $pos+1);
if(strlen($dec_str)>$dec_length){
return $int_str.($dec_length>0?'.':'').substr($dec_str, 0,$dec_length);
}else{
return $number;
}
}else{
return $number;
}
}
//toFixed(1234.678, 0) = 1234
//toFixed(1234.678, 1) = 1234.6
//toFixed(1234.678, 2) = 1234.67
//toFixed(1234.678, 4) = 1234.678
答案 6 :(得分:0)
直接在php中使用的解决方案是number_format()
number_format(2.4232, 3);