不确定这是否正常,但我个人认为,这并不能给我正确的结果。让我们看一下这个例子
$a = 3.32475;
$b = round($a,2,PHP_ROUND_HALF_UP);
我期待3.33,但我得到3.32。我在这里错过了什么吗?舍入函数是否只是字面上使用第3个小数点值而不是整个值,然后将其四舍五入?
我所期待的是这样的: -
- 3.32475
- 3.3248
- 3.325
- 3.33
我在这里做错了吗?有没有更好的方法让我在整个值而不是第3个小数点上获得精确的舍入?
感谢。
答案 0 :(得分:1)
它会将3.33任何内容>= 3.325
四舍五入。你的价值低于那个,所以它会下降到3.32。
正如the docs中所述,PHP_ROUND_HALF_UP
表示:
将val向上舍入到精确小数位,远离零,当它位于的一半时。使1.5成2和-1.5成-2。 [强调补充]
如果你想强迫它'" round"向上,使用ceil()
代替round()
:
$a = 3.32475;
$b = ceil($a * 100) / 100;
这可以找到"天花板"值332.475,即333,然后将其除以100得到3.33。
此外,请注意,舍入从未实际按照您描述的方式工作(一次舍入一个数字)除非您编写一个特殊例程来执行此操作(并且我无法想到任何现实世界的原因)我想这样做。)