PHP回合不同的结果[重复]
Posted
技术标签:
【中文标题】PHP回合不同的结果[重复]【英文标题】:PHP round different results [duplicate] 【发布时间】: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.9923.79 * 4.2030 = 99.989370
如果您需要 exact 值进行进一步计算,您应该存储 un 舍入值和仅将其四舍五入以显示。
@jasneinfo,“四舍五入”是什么意思?找出来,你就会得到答案。
是的,但需要 $result2 等于 100 。另一种寻找解决方案以解决接近 100 但不更高的最大回合
【参考方案1】:
您的舍入精度为小数点后两位。如果你想得到整数,你需要省略精度参数:
$result2 = round(23.79 * 4.2030);
注意:精度参数越低,您的结果与实际结果就越不准确。
如果您希望朝特定方向舍入,也可以使用ceil()
和floor()
(ceil()
将向上舍入,floor()
将向下舍入)。
【讨论】:
以上是关于PHP回合不同的结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章