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.99 23.79 * 4.2030 = 99.989370 如果您需要 exact 值进行进一步计算,您应该存储 un 舍入值和仅将其四舍五入以显示。 @jasneinfo,“四舍五入”是什么意思?找出来,你就会得到答案。 是的,但需要 $result2 等于 100 。另一种寻找解决方案以解决接近 100 但不更高的最大回合 【参考方案1】:

您的舍入精度为小数点后两位。如果你想得到整数,你需要省略精度参数:

$result2 = round(23.79 * 4.2030);

注意:精度参数越低,您的结果与实际结果就越不准确。

如果您希望朝特定方向舍入,也可以使用ceil()floor()ceil() 将向上舍入,floor() 将向下舍入)。

【讨论】:

以上是关于PHP回合不同的结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将数组推入多维数组(php)[重复]

PHP MySQL连接表为JSON [重复]

+ [] 和 [] + 结果如何不同[重复]

PHP中逻辑非的重要性[重复]

通过php从mysql结果创建json对象[重复]

PHP计算真正的大/大数字显示错误的结果[重复]