- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在做 question 33 of Project Euler在 Python 中,当我注意到一些我不明白的事情时。
问题的答案需要以最低通用术语给出的分母。所以我想我会使用 float.as_integer_ratio()
检查分母是什么。原来0.01.as_integer_ratio()
返回 (5764607523034235, 576460752303423488)
和 0.1.as_integer_ratio()
返回 (3602879701896397, 36028797018963968)
而不是预期的 1/100
和 1/10
.
为什么它的行为是这样的?我猜这与这些数字如何存储在计算机上有关。我也尝试过 Python 中的 Fractions 库,但这给出了相同的结果。我希望有人可以向我解释为什么它会这样。
最佳答案
正如colidre 提到的,问题在于浮点表示的不准确。您可以使用 limit_denominator method在分数库中以获得正确的结果。
>>> from fractions import Fraction
>>> Fraction(0.01).limit_denominator(100000)
1/100
关于Python:为什么 0.01.as_integer_ratio() 返回 5764607523034235/576460752303423488,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61110419/
近日,有记者提到float.as_integer_ratio() ,Python 2.6 中的新增功能,指出典型的浮点实现本质上是实数的有理逼近。出于好奇,我不得不尝试 π: >>> float.as
我知道我可以使用:- 0.5.as_integer_ratio() ;并得到整数分数:1/2 但是,如果我有一个小数,例如:- 8.333333333333334;相当于:25/3;我使用 8.333
我在做 question 33 of Project Euler在 Python 中,当我注意到一些我不明白的事情时。 问题的答案需要以最低通用术语给出的分母。所以我想我会使用 float.as_in
我是一名优秀的程序员,十分优秀!