1. 解释
python
由于 float
方法的浮点数处理精度不足导致,处理或者保存小数的时候可能出现不准准确的请款
python
的 round
在保存 两位小数时 0.125
时的 的三位是 5
的话就有可能被舍去随意需要额外方法处理
2. 代码
import decimal
decimal.getcontext().rounding = decimal.ROUND_HALF_UP
def index(number):
"""
输入一个数 将数 保存两位小数, 并且四舍五入
:param number: 要设置的数
:return:
"""
n = str(number*100)
n = decimal.Decimal(n).__round__(1)
n = n / decimal.Decimal("100")
n = decimal.Decimal(str(n), decimal.getcontext())
return float(n.__round__(2))
count = 0.015
while count < 1:
r = index(count)
print(r, str(count), sep=' ----- ')
count += 0.01
3. 结果展示
