-1

也许问题很简单,但我找不到答案。我需要做的是在逗号后将数字四舍五入到 2 位。我用这个:

round(($data/$count*100), 2)

当我得到这样的数字时:

60.36036036036012 and : 37.83783783783808 is OK, because it's: 60.36 and 37.84

但为什么会这样:

1.8018018018018036

四舍五入到这个:

1.8000000000000003 

逗号后如何始终舍入到 2 个位置?

4

2 回答 2

1

1.8除非您使用带有某种相关错误的旧 PHP 版本之类的东西,否则您应该得到。尽管如此,如果你想看到1.80你需要格式化输出字符串,否则默认情况下会去除尾随零。最灵活的方法是使用sprintf()格式,如下所示:

$val = 1.8000000000000003;
printf("%.02f", round( $val, 2 ));

这会产生

1.80

关键是“%.02f”,这意味着您要格式化 (f) 浮点值,点后有两位数字,0在需要时填充(如本例)。

有关可用格式设置的更多信息,请参阅 sprintf()文档。

于 2012-11-18T16:15:41.047 回答
0

使用 PHP NumberFormatter 类http://es.php.net/manual/es/class.numberformatter.php

于 2012-11-18T16:06:14.713 回答