从分数中导入分数,给出实数的分数表示,但给出的回答相当复杂,用纸笔法似乎非常简单。
Fractions(.2) giving answer 3602879701896397/18014398509481984
,
也就是0.2000000000000110223024625157,差不多是0.2,但我希望是1/5。
我知道这个用法有limit(),但我只需要最小的分子和分母,它给出了准确的实数bcoz我要处理的是一个大范围内的很多数字,所以我不能对所有人使用相同的limit()参数。你知道吗
Tags:
可以使用
Fraction
类来表示0.2
,并且可以按如下方式访问分子和分母:希望有帮助。你知道吗
你奇怪的输出来自float point problems。在某些情况下,可以通过使用Fraction.limit_denominator()限制分母来克服这个问题。如果分母的实际值大于您使用的阈值,此过程当然也会导致舍入错误。此阈值的默认值为1000000,但也可以使用较小的值。你知道吗
当然,正如第一句中所解释的,由于浮点数的存储方式,存在精度限制。如果数字的大小是10^9,那么分数部分的10位数就不能准确表示为
演示。但是你可能会问自己,如果你真的需要10^-15的准确度,如果你的输入没有反映这个准确度。如果您想获得更高的精度,那么必须从一开始就使用^{} 模块,并在所有数学运算中提高精度级别。更好的方法是从一开始就将分子和分母作为整数值处理—在Python integer values are theoretically not restricted in size
相关问题 更多 >
编程相关推荐