python里如何保存float类型的小数的位数+round format Decimal
介绍三种方法:
round(a,2)
‘%.2f’ % a
Decimal(‘5.000’).quantize(Decimal(‘0.00’))
当需要输出的结果要求有两位小数的时候,字符串形式的:’%.2f’ % a 方式最好,其次用Decimal。
需要注意的:
-
可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。
-
Decimal还可以用来限定数据的总位数。
-
round是截断(直接舍弃其余位)还是四舍五入原则,和版本有关系。
举例:
# 默认对十分位四舍五入,也就是四舍五入成整数
print(round(1.23)) # 1
print(round(1.27)) # 1
# 小数出现.5,返回离他们最近的偶数
print(round(1.5)) # 2
print(round(2.5)) # 2
print(round(3.5)) # 4
# 负数就相当于从小数点往前多少位
print(round(10.273, -1)) # 10.0 对个位四舍五入
print(round(10.273, -2)) # 0.0 对十位四舍五入
print(round(10273, -2)) # 10300 对十位四舍五入
print(round(10273, -1)) # 10270 对个位四舍五入
x=1.23456
print(format(x,"0.1f")) # 1.2
print(format(x,"0.2f")) # 1.23
print(format(x,"0.3f")) # 1.235
print("格式化精度{:0.4f}".format(x)) # 格式化精度1.2346