将浮点数舍去为与乘数相同的小数

时间:2019-08-17 21:18:14

标签: python python-3.x

我希望有人能以尽可能多的pythonic方式写这篇文章

x = 2.651
y = 1.05
a = x * y
print(a)
2.78355

在此示例中,我希望a的小数位数与x相同,因此答案应为2.784。用正确的小数位数来获得此答案的pythonic方法是什么?

2 个答案:

答案 0 :(得分:2)

尝试类似这样的方法。我的把戏使用字符串属性。

x = 2.651
y = 1.05

x_dec = len(str(x).split('.')[1])

a = ('{0:.%df}' % x_dec).format(x * y)

答案 1 :(得分:2)

x = 2.651
decloc = (str(x).find('.'))+1
decimals = (len(str(x)[decloc:]))
y = 1.05
a = x * y
print(round(a, decimals))