想在python中分离浮点数的整数部分和小数部分吗

想在python中分离浮点数的整数部分和小数部分吗,python,python-2.7,Python,Python 2.7,我正在将英尺的值转换为英寸,其中1英尺=12英寸。我在用英寸计算人的身高。例5.11身高5英尺11英寸的人指总身高71英寸。Python中是否有任何方法可以将浮点数的int部分和float部分分开以进行进一步计算?欢迎提供任何建议。要获取浮点的整数部分,请使用内置函数: >>>int(5.1) 5 要分离浮点部分,请用整数减去浮点: >>>5.1 - int(5.1) 0.1 或者你可以用1得到浮子的模量(浮子部分): >>> 5.1 %

我正在将英尺的值转换为英寸,其中1英尺=12英寸。我在用英寸计算人的身高。例5.11身高5英尺11英寸的人指总身高71英寸。Python中是否有任何方法可以将浮点数的int部分和float部分分开以进行进一步计算?欢迎提供任何建议。

要获取浮点的整数部分,请使用内置函数:

>>>int(5.1)
5
要分离浮点部分,请用整数减去浮点:

>>>5.1 - int(5.1)
0.1
或者你可以用1得到浮子的模量(浮子部分):

>>> 5.1 % 1
0.09999999999999964 #use the round() function if you want 0.1

对您来说,
5.11
不是浮动。如果是,那么它意味着5.11英尺,也就是61.32英寸

5.11
是一个包含两段数据和一个分隔符的字符串-像解析一段一样解析它!如果将分隔符更改为更传统的
(即
5'11
),则很明显,它不是一个单独的浮点数:

raw = raw_input("Enter feet'inches")
feet, inches = map(int, raw.split("'", 1))

另一种方法是使用divmod(函数或运算符),使用数字1作为分母(除数):

>>> divmod(5.11, 1)
(5.0, 0.11000000000000032)

>>> 5.11.__divmod__(1.)
(5.0, 0.11000000000000032)

谢谢你的回答。它可以工作。你永远不需要手动调用
\uuuuu divmod\uuuu
@埃里克,我看了一眼,但没发现。。。你能告诉我为什么我永远不应该直接调用神奇的函数divmod吗?你会做myList吗?@Eric,谢谢!很长一段时间以来,我知道直接调用神奇函数是不对的,但我真诚地认为,这取决于上下文,我看不出有什么好的理由不直接调用float。divmod函数没有任何特殊功能(与len不同,len会对某些类型的错误引发异常)。我想我的观点是,看到
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu方法表明“这里发生了不寻常的事情”。你是对的,但有时也可以——例如,这是使用
super
时的唯一方法:
super(MyClass,self)。\uuuu divmod\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(
-5.1%1==0.900000000000004
)。