什么是JS的完全等价物:PHP中的something.toFixed()?

时间:2013-12-18 22:49:13

标签: javascript php

如果我在javascript({a'等于2.4232)中有a.toFixed(3);,那么在php中检索它的确切等效命令是什么?我搜索了它,但没有找到适当的解释。

7 个答案:

答案 0 :(得分:20)

PHP中的完全等效命令是函数number_format

number_format($a, 3, '.', ""); // 2.423
  • 将数字四舍五入到小数点后第三位
  • 它充满了' 0'如果需要,字符总是有三位小数

这是一个实用的功能:

function toFixed($number, $decimals) {
  return number_format($number, $decimals, '.', "");
}

toFixed($a, 3); // 2.423

答案 1 :(得分:17)

你试过这个:

round(2.4232, 2);

这会给你一个2.42的答案。

可在此处找到更多信息:http://php.net/manual/en/function.round.php

答案 2 :(得分:5)

我发现sprintfnumber_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);