number_format 和round 有什么区别?
number_format()
和 round()
在PHP中的底层计算方法并不完全一样,主要体现在它们的目的和结果表现形式上的差异,同时也可能影响到精度:
-
round()
函数主要用于对浮点数进行数学意义上的四舍五入,它的重点在于数值本身的精度调整。该函数接收两个参数:要四舍五入的数字和要保留的小数位数,它会根据给定的规则对数值进行精确的四舍五入处理,并返回一个新的浮点数。round()
函数遵循 IEEE 754 浮点数标准,这意味着在某些情况下可能会因为浮点数的内部表示而导致非常微小的精度误差。 -
number_format()
函数则更多地关注于数字的显示格式,它可以实现四舍五入的同时添加千位分隔符,并允许你控制小数点后的位数。当提供一个小数位数参数时,它也会进行四舍五入的操作,但是返回的是一个字符串而非浮点数。number_format()
的四舍五入规则与round()
相同,但由于最终返回的是字符串格式的数字,所以它不会直接影响后续的数值计算。
因此,在精度方面,round()
和 number_format()
在正常情况下对于四舍五入的精度控制是一致的。但如果涉及到浮点数计算的内在精度限制,或者是需要进一步参与数学计算的情景下,直接使用 round()
得到的浮点数结果更加适合,因为字符串形式的数字无法直接参与数学运算。
总之,两者在底层计算四舍五入时的算法逻辑应该是一致的,但应用场景和结果类型不同,这会影响到它们在实际项目中的使用选择。
例子:
欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。
Don’t reinvent the wheel, library code is there to help.
文章来源:刘俊涛的博客
若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)
标签:四舍五入,format,浮点数,number,PHP,round,精度 From: https://www.cnblogs.com/lovebing/p/18101004