【发布时间】:2018-03-05 10:08:46
【问题描述】:
所以现在我有一个变量 x = 1001.0010101
从这个 x,我想分成两部分:
x = 1001.0010101
val_int = int(x) #get val_int = 1001
val_fract = {0:.5f}".format(a - val_int) #get val_fract = 0.00101
是否可以使用for循环将val_fract迭代为:(忽略int部分和小数点)
0
0
1
0
1
我试了很多次都做不到,系统告诉我
Traceback (most recent call last):
File "python", line 46, in <module>
TypeError: 'float' object is not iterable
感谢您的帮助,非常感谢。
【问题讨论】:
-
您可能希望将变量转换为字符串对象,然后使用正则表达式得到您想要的。
-
我只是尝试使用拆分方法将两个部分分开。但是小数部分没有完全拆分,我的意思是第二部分只取10101和**00**(这两个零)10101丢失了。
-
你的分割方法的代码是什么,你能把它附加到你的问题中吗?
-
你能详细解释一下这是干什么用的吗?这是一件奇怪的事情,我怀疑有更好的方法来解决潜在的问题。请注意,值
1001.0010101无法在 Pythonfloat中表示。你能得到的最好的结果是1001.001010100000030433875508606433868408203125。你想在小数部分看到所有这些数字吗?如果不是,你截断它们的标准是什么? -
那么您绝对不应该将
1001.0010101存储在Pythonfloat中。您应该将其表示为字符串,而不是数字。
标签: python python-3.x for-loop floating-point