将浮点数限制为Python中小数点的不同数量(由最终用户决定)

时间:2015-12-08 22:51:07

标签: python-3.x precision

所以,当我处理花车时,我已经学会了很多控制精度的方法。

以下是3种不同技术的示例:

somefloat=0.0123456789

print("{0:.10f}".format(somefloat))
print("%.5f" % somefloat)
print(Decimal(somefloat).quantize(Decimal(".01")))

这将打印:

0.0123456789

0.01235

0.01

在上面的所有例子中,精度本身是一个固定值,但我怎么能把精度本身变成一个可能的变量 是由最终用户输入的?

我的意思是,固定的精度值现在在quatations标记内,我似乎找不到在那里添加任何变量的方法。无论如何,还有办法吗?

我在Python 3上。

1 个答案:

答案 0 :(得分:1)

使用格式:

somefloat=0.0123456789
precision = 5
print("{0:.{1}f}".format(somefloat, precision))
# 0.01235

使用旧式字符串插值:

print("%.*f" % (precision, somefloat))
# 0.01235

使用小数:

import decimal
D = decimal.Decimal
q = D(10) ** -precision
print(D(somefloat).quantize(q))
# 0.01235