python3学习笔记:对数值进行取整

问题

将一个浮点数取整到固定的小数位

解决方案

使用内建的round(value,ndigits)函数即可。
当某个值恰好是两个整数间的一半是取整操作会取到离该值最接近的那个偶数上,也就是1.5,2.5这样的值会取整到2
示例1:

print(round(1.23,1))
#1.2
print (round(1.25,1))
#1.2
print (round(-1.27,1))
#-1.3
print(round(1.5,0))
#2
print(round(2.5,0))
#2

传递给round()参数ndigits可以是负数,这种情况下会相应取整到十位、百位、千位等。示例如下:

a = 1456789
print(round(a,-1))
#1456790
print(round(a,-2))
#1456800
print(round(a,-3))
#145700

在对值输出时别把取整和格式化操作混为一谈。如果只是将数值以固定的位数输出,一般来说是用不着round()的。相反,只要在格式化时指定所需的精度就可以。示例如下:

x=1.23456
x1 = format(x,'0.2f')
#x1=1.23

此外,不要采用对浮点数取整的方式来‘修正’精度上的问题。

a = 2.1
b = 4.2
c = a+b
print(c)
#6.300000000000001
c = round(c,2)
print(c)
#6.3

如上述做法会产生误差,一般这种误差是可以忽略的。但是如果出现误差的行为非常重要,那么可以考虑使用decimal模块。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容