Javascript PHP中JS:something.toFixed()的确切等价物是什么?
如果我有Javascript PHP中JS:something.toFixed()的确切等价物是什么?,javascript,php,Javascript,Php,如果我有a.toFixed(3)在javascript中('a'等于2.4232)php中检索该值的确切等效命令是什么?我搜索了它,但没有找到正确的答案说明。在PHP中,您可以使用一个名为的函数。您是否尝试过以下方法: round(2.4232, 2); 这将给你一个2.42的答案 更多信息可以在这里找到:直接等价物是sprintf('%.03F',$A)。这将把有问题的值格式化为一个带3位小数的数字。如果需要,它也会取整。我发现sprintf和number\u格式都会取整数字,所以我使用了这
a.toFixed(3)
在javascript中('a'等于2.4232)php中检索该值的确切等效命令是什么?我搜索了它,但没有找到正确的答案说明。在PHP中,您可以使用一个名为的函数。您是否尝试过以下方法:
round(2.4232, 2);
这将给你一个2.42的答案
更多信息可以在这里找到:直接等价物是
sprintf('%.03F',$A)
。这将把有问题的值格式化为一个带3位小数的数字。如果需要,它也会取整。我发现sprintf
和number\u格式都会取整数字,所以我使用了这个:
$number = 2.4232;
$decimals = 3;
$expo = pow(10,$decimals);
$number = intval($number*$expo)/$expo; // = 2423/100
PHP中完全等效的命令是函数:
- 它将数字四舍五入到小数点后三位
- 如果需要始终有三个十进制数字,则用“0”字符填充
以下是一个实用功能:
function toFixed($number, $decimals) {
return number_format($number, $decimals, '.', "");
}
toFixed($a, 3); // 2.423
翻译如下:
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
直截了当的解决方案是在php中使用isnumber\u format()
我认为PHPsround()
将尽可能地接近你的目标…除了sprintf
number\u格式
是最接近的。如果将其用于round(2.4255,2),它将返回2。43@DănuțMihaiFlorian它取决于您设置为模式的内容
如果是64.000000,则返回64。我想要64张。00@NalinAgrawal:您可能需要将其转换为double才能获得该值,尽管您可能希望在页面上显示该值,在这种情况下,有一些字符串格式化程序将保持一定的十进制精度,尽管这与字符串有关,而不是与数字有关。tested。这与14年8月28日19:15(4年半前)的@cassiodoroVicinetti的回答有何不同
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
number_format(2.4232, 3);