请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
这不是重复这个,我会在这里解释.
考虑x = 1.2.我想把它分成1和0.2.我已经尝试了链接问题中概述的所有这些方法:
In [370]: x = 1.2
In [371]: divmod(x, 1)
Out[371]: (1.0, 0.19999999999999996)
In [372]: math.modf(x)
Out[372]: (0.19999999999999996, 1.0)
In [373]: x - int(x)
Out[373]: 0.19999999999999996
In [374]: x - int(str(x).split('.')[0])
Out[374]: 0.19999999999999996
Run Code Online (Sandbox Code Playgroud)
我没有尝试给我完全1和0.2.
有没有办法可靠地将浮点数转换为不受浮点表示限制阻碍的十进制和浮点等值?
我理解这可能是由于数字本身的存储方式有限,所以我愿意接受任何克服这个问题的建议(比如一个包或其他).
编辑:如果可能的话,更喜欢不涉及字符串操作的方法.
给定一个介于 0 和 1 之间的实数(例如 0.2836),我只想返回不带点的数字(例如在这种情况下从 0.2836 -> 2836 或 02836)。我试图使用 python 来做到这一点,但我刚刚开始,我需要一些帮助。
如何在python代码中将10.5转换为10:30(10小时30分钟).
现在时间= 10.5 我需要结果时间= 10:30
有什么简单的解决
Tnx全部求助