Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
四舍五入时,PHP数字格式降为零_Php_Jquery_Number Formatting - Fatal编程技术网

四舍五入时,PHP数字格式降为零

四舍五入时,PHP数字格式降为零,php,jquery,number-formatting,Php,Jquery,Number Formatting,我使用PHP的number_格式显示小数点后2位的浮点值 当数字大约为1.898时,它会被四舍五入到1.9 如何将其显示为1.90 更新: 我有一个函数,以 return number_formant($num, 2); 调用函数的php脚本打印出Javascript使用的数字。当我对数字进行var_转储时,它会正确打印两位小数。看起来是Javascript失去了零 这是导致问题的JS代码 function show_level(level) { ... if (level > 9999

我使用PHP的number_格式显示小数点后2位的浮点值

当数字大约为1.898时,它会被四舍五入到1.9

如何将其显示为1.90

更新:

我有一个函数,以

return number_formant($num, 2);
调用函数的php脚本打印出Javascript使用的数字。当我对数字进行var_转储时,它会正确打印两位小数。看起来是Javascript失去了零

这是导致问题的JS代码

function show_level(level) {
...
if (level > 9999)
    level_label = (level / 1000).toPrecision(3) + 'k';
else if (level > 999)
    level_label = (level / 1000).toPrecision(2) + 'k';
else
    level_label = level;
我修改了最后一行,使它按我所希望的方式工作

  level_label = level.toFixed(2);
你可以做:

echo round(1.898,2);

也许不是最好的解决方案,但:

$n = 1.2345;
$n = number_format( round($n, 1), 2);
//echo 1.20
echo $n;
所以, 你的意思是这样的(你所拥有的):


以下是您想要的:

<?php
echo number_format($x,2);
?> 

您可以使用其他长度。试试看

希望能对你有所帮助
:)

Psst:
sprintf
也有
%f
。)但是,这就是它打印的内容。您可能没有立即写出字符串。显示你的代码。“当数字接近1.898时,它会被四舍五入到1.9”。不,那不是真的。很明显,用1表示小数而不是2,默认值是0,所以如果你必须用它表示货币,输出将是“2”。你也可以用:string money_format(string$format,float$number)你现在可以发布相关的JS代码了吗?Thx。这将导致舍入/精度误差。当你四舍五入到一位时,显示小数点后两位是不好的形式。这就是问题(在第一位)提出的问题,然后编辑。
<?php
echo number_format($x);
?> 
<?php
echo number_format($x,2);
?>