Python除数计算

2024-04-26 04:50:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用Python获取2.667。8.0/3.0这给了我2.66666666666666665
但是我想要2.666666666666667
当我在C中做这个8.0/3.0我得到2.667 好像我没说就把它圆了。你知道吗


2条回答

我建议使用decimal模块:

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

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

二进制浮点有时不能按我们的基数10存储东西。你知道吗

您可以舍入或使用字符串格式来获得所需的浮点值。你知道吗

您可以使用十进制模块而不是浮点;它以10为基数存储数字,甚至分数。你知道吗

这里有比你要求的更精确的东西:

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

分数模块允许您精确地存储有理数。你知道吗

相关问题 更多 >