我有这个值:
a = 1.01010101
我需要把所有的数字都放在该点之后, 将它们转换为一个int。 创建一个新变量,并将此int放入新变量中。 所以我需要这样的输出
b = 01010101
我做不到:
a -= 1
b = a*(10**8)
因为我不知道要点之前的电话号码。 是否可以在不编写新函数的情况下做到这一点? 对不起我的英语不好。 祝你有美好的一天
答案 0 :(得分:1)
math.trunc()
函数将为您提供整数部分:
>>> import math
>>> math.trunc(1.01010101)
1
然后可以减去,但是您可能会遇到ieee浮点问题,这可能令人惊讶:
>>> a = 1.01010101
>>> a -= math.trunc(a)
>>> a
0.010101010000000077
>>> b = a * 10**8
>>> b
1010101.0000000077
在许多情况下,您可以截断最后一个数字以获得所需的整数,但是我建议阅读https://docs.python.org/2/tutorial/floatingpoint.html以获得更深入的了解。
Python有一个decimal
模块,可以更忠实地处理以10为底的算术运算:
import decimal.Decimal as D
>>> a = D('1.01010101')
>>> a
Decimal('1.01010101')
>>> math.trunc(a)
1
>>> a -= math.trunc(a)
>>> a
Decimal('0.01010101')
>>> a * 10**8
Decimal('1010101.00000000')
>>> b = int(a * 10**8)
>>> b
1010101
在此版本中,b = ...
行中没有浮点伪像。
答案 1 :(得分:0)
您可以这样做:
a = 1.01010101
b = str(a).split('.')[1]
这应该给您“ 01010101”。