Python 2.7 带强制前导零的python科学记数法
我想让Python2.7打印出科学记数法中的浮点数,强制从0开始。例如,假设Python 2.7 带强制前导零的python科学记数法,python-2.7,scientific-notation,formatted-input,Python 2.7,Scientific Notation,Formatted Input,我想让Python2.7打印出科学记数法中的浮点数,强制从0开始。例如,假设 a=1234567890e12 print '{:22.16E}'.format(a) 1.2345678900000000E+21 但是,我希望打印输出如下所示: 0.1234567890000000E+22 请注意,由于所需的输出被强制为前导零,因此指数增加了1。我怎样才能做到这一点? 谢谢。好吧,既然你想做的不是“标准”的科学记数法,我不确定是否有一个简单的方法可以做到这一点。然而,这里有一个黑客程序,它将起
a=1234567890e12
print '{:22.16E}'.format(a)
1.2345678900000000E+21
但是,我希望打印输出如下所示:
0.1234567890000000E+22
请注意,由于所需的输出被强制为前导零,因此指数增加了1。我怎样才能做到这一点?
谢谢。好吧,既然你想做的不是“标准”的科学记数法,我不确定是否有一个简单的方法可以做到这一点。然而,这里有一个黑客程序,它将起作用
a = 1234567890e12
A = str(a)
exp = A.find('e+')
converted = '0.' + A[0] + A[2:exp] + 'e+' + str(int(A[exp+2:])+1)
fortranformat软件包将满足您的需要
import fortranformat as ff
a=1234567890e12
lineformat = ff.FortranRecordWriter('(1E26.16)')
lineformat.write([a])
输出:
' 0.1234567890000000E+22'
处理电子商务以及
def fortranFormat(n):
a = '{:.4E}'.format(float(n))
e = a.find('E')
return '0.{}{}{}{:02d}'.format(a[0],a[2:e],a[e:e+2],abs(int(a[e+1:])*1+1))
print(fortranFormat('60.505'))
print(fortranFormat('74.705'))
print(fortranFormat('2.000000E-09'))
输出:
0.60505E+02
0.74705E+02
0.20000E-08
好奇,你为什么要这么做?这不是科学记数法的标准,我需要让两个不同的文件逐位兼容。其中一个是由Fotran 90编写的,其写入格式如下:“1pd26.16”