在Python中以非标准表示法表示浮点数?

3 投票
1 回答
1331 浏览
提问于 2025-04-17 08:20

我想把1.2e-08显示成12e-09,但是找不到合适的格式设置方法。

有没有办法在不使用字符串操作或正则表达式的情况下,以非标准的形式表示浮点数?

补充说明:如果这个问题不太清楚,我想要的是一种方法,可以让我把任何数字以任何比例表示,比如如果我想把所有数字都按1e-12的比例来显示,那么我希望能得到像12000e-12这样的结果。

谢谢!

1 个回答

6

看看这个十进制模块,它应该能帮你把数字格式化成你想要的样子。

http://docs.python.org/library/decimal.html

你提到的工程计数法,有一个叫做to_eng_string()的方法可以使用。

编辑

根据你的进一步说明,你可以把数字分成几部分来构建:

myNumber = 1.2e-8
myBase = 1e-12
mantissa = myNumber/myBase
print "{0:1}{1:s}".format(mantissa, "{0:1}".format(myBase)[1:])

这样会打印出: 12000.0e-12

如果你知道你总是会得到一个整数的尾数,你可以相应地调整格式。

撰写回答