我的 MySQL 表中有一个 DOUBLE 数据类型列,我的值为:
14.5299
但是 PHPnumber_format
将该值四舍五入为:
14.5300
如果我只是echo 14.5299
,它会输出:
14.53
如何14.5299
在不对 HTML 标记中的任何内容进行硬编码的情况下输出?
我的 MySQL 表中有一个 DOUBLE 数据类型列,我的值为:
14.5299
但是 PHPnumber_format
将该值四舍五入为:
14.5300
如果我只是echo 14.5299
,它会输出:
14.53
如何14.5299
在不对 HTML 标记中的任何内容进行硬编码的情况下输出?
这对我有用:
<?php
$double = 14.5299;
echo number_format(floor($double*100)/100, 2);
?>
结果是:14.52
$double = 14.5299;
var_dump( number_format($double, 4, '.', ',') );
... 印刷:
string(7) "14.5299"
......正如预期的那样。
我有根据的猜测是您的号码实际上有更多的 9:
$double = 14.52999;
...在这种情况下,14.5300
是正确的四舍五入方法。
下一个功能应该可以工作:
function fixedNumberFormat($float, $decimals, $withFormat = true) {
$decPoint = ($withFormat) ? "," : null;
$thousandsSep = ($withFormat) ? "," : null;
return substr(number_format($float, $decimals + 1), 0, -1);
}
fixedNumberFormat(14.5299, 4);