【发布时间】:2013-08-19 19:58:05
【问题描述】:
您好,我遇到了一些四舍五入的问题。例如:
$x = 100;
$y = 4.2030;
$result = round($x / $y, 2);
$result 将是 23.79
但是现在
$result2 = round(23.79 * 4.2030, 2);
$result2 将是 99.99 ,所以它是不正确的。应该是 100($result2 等于 $X)
如何解决?
【问题讨论】:
-
显然,在四舍五入时会丢失精度。圆形($x / y)!= $x / $y
-
为什么这应该是 100... 23.79*4.2030 = 99.98937 四舍五入到小数点后 2 位应该并且确实给你 99.99
-
23.79 * 4.2030 = 99.989370如果您需要 exact 值进行进一步计算,您应该存储 un 舍入值和仅将其四舍五入以显示。 -
@jasneinfo,“四舍五入”是什么意思?找出来,你就会得到答案。
-
是的,但需要 $result2 等于 100 。另一种寻找解决方案以解决接近 100 但不更高的最大回合