PHP:number_format舍入
发布时间:2020-12-13 13:09:26 所属栏目:PHP教程 来源:网络整理
导读:嗨,我一直有一个问题将数字四舍五入到-0而不是一个0 码: ?php$num= 0.000000031;$round = number_format((float)$num,1,'.','');echo $round * -1;? 输出: -0 预期产量: 0 我一直在寻找任何解决方案,但没有找到. 善意解释帮助我为什么它会向上舍入到-0而
嗨,我一直有一个问题将数字四舍五入到-0而不是一个0
码: <?php $num= 0.000000031; $round = number_format((float)$num,1,'.',''); echo $round * -1; ?> 输出: 预期产量: 我一直在寻找任何解决方案,但没有找到. 善意解释&帮助我为什么它会向上舍入到-0而不是0?谢谢
舍入不是-0.
$round变量在最后一行之前包含这个: string(3) "0.0" 您可以通过添加以下行来验证这一点: var_dump($round); 在回声之前. 因此,如果将“0.0”(字符串)乘以-1,则结果将为“-0” 因为(字符串)0在乘法之前被转换为(float)0 (float)0 * -1 = -0 php5 -r 'var_dump((float)0*-1);' float(-0) 基于浮点数行为,这是完全正常的. (更多细节:http://en.wikipedia.org/wiki/Signed_zero) 如果这是一个问题,你可以添加0以??避免这种“魔力”: php5 -r 'var_dump((float)0*-1+0);' float(0) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |