上QQ阅读APP看书,第一时间看更新
1.4.1 四舍五入运算
在实际应用中,我们经常需要对浮点数执行指定精度的四舍五入运算,以免小数位数过多。
对于简单的四舍五入运算,使用内置的round(value,ndigits)函数即可实现,代码(number_round.py)示例如下:
print(round(1.23, 1)) print(round(1.28, 1)) print(round(-1.27, 1)) print(round(1.25361,3))
执行py文件,输出结果如下:
1.2 1.3 -1.3 1.254
当一个值刚好在两个边界的中间时,round()函数返回离它最近的偶数。例如,对于1.5或者2.5的舍入运算,使用round()函数的输出结果是2。
传给round()函数的ndigits参数可以是负数。这种情况下,舍入运算会作用在十位、百位、千位等,相关代码(number_round.py)示例如下:
a = 1627731 print(round(a, -1)) print(round(a, -2)) print(round(a, -3))
执行py文件,输出结果如下:
1627730 1627700 1628000
不要将舍入和格式化输出混淆了。如果只是输出一定长度的数,不需要使用round()函数,只需要在格式化的时候指定精度即可,相关代码(number_round.py)示例如下:
x = 1.23456 print(f'{x: 0.2f}') print(f'{x: 0.3f}')
执行py文件,输出结果如下:
1.23 1.235
同样,不要试着去舍入浮点值来修正表面上看起来正确的代码,相关代码(number_round.py)示例如下:
a = 2.1 b= 4.2 c = a + b print(c) print(round(c, 2))
执行py文件,输出结果如下:
6.300000000000001 6.3
大多数情况下没有必要使用浮点数,我们也不推荐这样做,因为在计算的时候出现的小误差是能被理解与容忍的。如果不能允许这样的小误差(比如涉及金融领域),那么就得考虑使用decimal模块了。