Python划分数字

时间:2014-03-29 02:04:55

标签: python math

我需要在Python中获得2.66666666666666667。 8.0/3.0这让我得到了2.66666666666666665
但我想要2.66666666666666667
当我在C#中执行8.0/3.0时,我得到2.66666666666666667 就像它没有我的说法那样圆润。

2 个答案:

答案 0 :(得分:2)

二进制浮点有时不存储我们基于10-beings想要的东西。

您可以使用字符串格式进行舍入或使用浮点数来获得所需的内容。

您可能使用十进制模块而不是浮点数;它将数字,甚至分数存储在基数10中。

这里的内容比你要求的更精确:

>>> fractions.Fraction('8.0') / fractions.Fraction('3.0')
Fraction(8, 3)

分数模块允许您精确存储有理数。

答案 1 :(得分:1)

我建议使用decimal模块:

from decimal import *
print(Decimal(8.0) / Decimal(3.0))

在参考链接中,它还解释了如何修改上下文并调整舍入或精度以满足您的需求。