1

我的 MySQL 表中有一个 DOUBLE 数据类型列,我的值为:

14.5299

但是 PHPnumber_format将该值四舍五入为:

14.5300 

如果我只是echo 14.5299,它会输出:

14.53

如何14.5299在不对 HTML 标记中的任何内容进行硬编码的情况下输出?

4

4 回答 4

8

利用sprintf()

echo sprintf("%2.4f", 14.5399);

文档:http ://us2.php.net/sprintf

于 2012-11-29T17:54:01.700 回答
3

这对我有用:

<?php
$double = 14.5299;
echo number_format(floor($double*100)/100, 2);
?>

结果是:14.52

于 2012-11-29T17:55:03.547 回答
2
$double = 14.5299;
var_dump( number_format($double, 4, '.', ',') );

... 印刷:

string(7) "14.5299"

......正如预期的那样。

我有根据的猜测是您的号码实际上有更多的 9:

$double = 14.52999;

...在这种情况下,14.5300是正确的四舍五入方法。

于 2012-11-29T17:55:48.783 回答
0

下一个功能应该可以工作:

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);
于 2017-11-03T08:55:41.200 回答