gpt4 book ai didi

PHP: number_format 四舍五入

转载 作者:可可西里 更新时间:2023-11-01 12:36:15 26 4
gpt4 key购买 nike

您好,我在将数字四舍五入到 -0 而不是 0

时遇到了问题

代码:

<?php
$num= 0.000000031;

$round = number_format((float)$num, 1, '.', '');

echo $round * -1;
?>

输出:-0

预期输出:0

我一直在寻找任何解决方案,但没有找到。

请解释并帮助我为什么它四舍五入为 -0 而不是 0?谢谢

最佳答案

不是四舍五入使它成为 -0。

$round 变量在最后一行之前包含:

string(3) "0.0"

您可以通过添加此行来验证这一点:

var_dump($round);

在 echo 之前。

因此,如果将“0.0”(字符串)与 -1 相乘,则结果将为“-0”

因为 (string)0 在乘法和之前被转换为 (float)0

(float)0 * -1 = -0

php5 -r 'var_dump((float)0*-1);'
float(-0)

根据 float 行为,这是完全正常的。 (更多详情:http://en.wikipedia.org/wiki/Signed_zero)

如果这是一个问题,您可以添加 0 来避免这种“魔法”:

php5 -r 'var_dump((float)0*-1+0);'
float(0)

关于PHP: number_format 四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27636585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com