如何在 python 浮点数后获取值
How to get value after e for python floats
我经常在 Python 中为浮点数输入科学记数法的值(例如 3.472e-07)。有没有一种简单的方法来访问 Python 中给定浮点数的指数?
例如给定 x = 4.7820012347239297234e-7
,是否有某种方法可以获取 e 之后的值(在本例中为 -7)。
谢谢!
(1)取数的对数,并相应地四舍五入。
for val in [12345678901234567890.0, .0000004782]:
logval = math.log10(val)
print val, logval, round(logval - (0.5 if logval<0 else 0))
(2) 将其转换为字符串,抓取第一个出现的"e" from the right end,并取出字符串的其余部分。
for val in [12345678901234567890.0, .0000004782]:
valstr = "{0:e}".format(val)
epos = valstr.rfind('e')
exponent = valstr[epos+1:]
print int(exponent)
这两个对你有用吗?
我经常在 Python 中为浮点数输入科学记数法的值(例如 3.472e-07)。有没有一种简单的方法来访问 Python 中给定浮点数的指数?
例如给定 x = 4.7820012347239297234e-7
,是否有某种方法可以获取 e 之后的值(在本例中为 -7)。
谢谢!
(1)取数的对数,并相应地四舍五入。
for val in [12345678901234567890.0, .0000004782]:
logval = math.log10(val)
print val, logval, round(logval - (0.5 if logval<0 else 0))
(2) 将其转换为字符串,抓取第一个出现的"e" from the right end,并取出字符串的其余部分。
for val in [12345678901234567890.0, .0000004782]:
valstr = "{0:e}".format(val)
epos = valstr.rfind('e')
exponent = valstr[epos+1:]
print int(exponent)
这两个对你有用吗?