首页 > 解决方案 > 为什么减法的行为如下?

问题描述

以下是我在 python 终端中所做的输出。

math.modf(45.332)

(0.33200000000000074, 45.0)

所以我觉得这很奇怪..试图模仿这个 modf 函数并得到相同的结果..

k=lambda x : x-float(math.floor(x))

k(5.5)

0.5

k(45.332)

0.33200000000000074

注意:仅当浮点数超过 1 位时才会发生这种情况

标签: python

解决方案


当您modf(45.332)在代码中调用时,输入实际上将转换为值为 45.332000732421874 的浮点数。

换句话说,您的问题发生在您使用模拟函数之前k(45.332),因为该输入参数也将被转换为浮点数。


推荐阅读