大佬教程收集整理的这篇文章主要介绍了PHP:number_format舍入,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
码:
<?php $num= 0.000000031; $round = number_format((float)$num,1,'.',''); echo $round * -1; ?>
输出:
-0
预期产量:
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)
以上是大佬教程为你收集整理的PHP:number_format舍入全部内容,希望文章能够帮你解决PHP:number_format舍入所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。