圆函数php

时间:2012-11-18 15:47:27

标签: php rounding

也许问题很简单,但我找不到答案。 我需要做的是在逗号后将数字舍入到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 个答案:

答案 0 :(得分:1)

你应该得到1.8,除非你使用旧的PHP版本和某些相关的错误。但是,如果你想看1.80,你需要格式化输出字符串,否则默认会删除尾随零。最灵活的方法是使用sprintf()格式,如下所示:

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

会产生

1.80

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

See the sprintf() docs了解有关可用格式设置的更多信息。

答案 1 :(得分:0)