2024-04-26 04:50:13 发布
网友
我需要用Python获取2.667。8.0/3.0这给了我2.66666666666666665 但是我想要2.666666666666667 当我在C中做这个8.0/3.0我得到2.667 好像我没说就把它圆了。你知道吗
8.0/3.0
我建议使用decimal模块:
from decimal import * print(Decimal(8.0) / Decimal(3.0))
在参考链接中,它还解释了如何修改上下文并调整舍入或精度以满足您的需要。你知道吗
二进制浮点有时不能按我们的基数10存储东西。你知道吗
您可以舍入或使用字符串格式来获得所需的浮点值。你知道吗
您可以使用十进制模块而不是浮点;它以10为基数存储数字,甚至分数。你知道吗
这里有比你要求的更精确的东西:
>>> fractions.Fraction('8.0') / fractions.Fraction('3.0') Fraction(8, 3)
分数模块允许您精确地存储有理数。你知道吗
我建议使用decimal模块:
在参考链接中,它还解释了如何修改上下文并调整舍入或精度以满足您的需要。你知道吗
二进制浮点有时不能按我们的基数10存储东西。你知道吗
您可以舍入或使用字符串格式来获得所需的浮点值。你知道吗
您可以使用十进制模块而不是浮点;它以10为基数存储数字,甚至分数。你知道吗
这里有比你要求的更精确的东西:
分数模块允许您精确地存储有理数。你知道吗
相关问题 更多 >
编程相关推荐