Python浮点格式

我已经看到了一些关于这个的问题,但是我读过的没有一个问题帮助我实际理解为什么我要做的就是失败.

所以我有一堆浮点值,它们有不同的精度.有些是0.1其他是1.759374等等.我想格式化它们所以它们都是“0.0000000E 00”的形式我试过做

number = '%1.7f' % oldnumber

但那没用.我以为我告诉它要做的是“小数点后一位数,后浮点数”,但它不起作用.我并没有真正得到文档中的示例,这些示例似乎甚至不打扰“小数点前后”问题,而且我没有找到关于小数点修复之前和之后的问题.

现在,我知道我的一些数字是0.0437或类似,我希望它们显示为4.3700000E-02或其他东西.我有点希望它可以自己做E位,但如果不是我怎么办呢?

这是我的确切行:

RealValConv =   '%1.7g' % struct.unpack('!f',    RealVal.decode('hex'))[0]

RealVal是十六进制数,表示我想要的值.

此外,这是在Python 2.7中

最佳答案
>>> '{:.7e}'.format(0.00000000000000365913456789)
'3.6591346e-15'

转载注明原文:Python浮点格式 - 代码日志