在Python中强制使用“通用”字符串格式以降低指数

时间:2018-08-28 11:39:03

标签: python string python-3.x string-formatting number-formatting

Python中的

General formatting将数字四舍五入为p有效数字,并且如果指数%fexp之间,则将其打印为浮点数(-4 <= exp < p),否则它以科学的指数表示法(%e打印。例如:

> '{0:0.8G}'.format(10000000)
'10000000'
> '{0:0.8G}'.format(0.000001)
'1E-06'

为什么这种情况只允许您指定指数上限的精度,而指数下限却固定为-4?有什么办法可以强制字符串格式来打印低指数的完整数字?

1 个答案:

答案 0 :(得分:1)

  

有什么方法可以强制字符串格式打印完整的数字   低指数?

无法强制G始终使用定点表示法进行格式化,但是您可以结合自定义精度使用f.rstrip()组合使用:

>>> '{:.10f}'.format(0.0000000001)
'0.0000000001'
>>> '{:.10f}'.format(0.00001).rstrip('0')  # remove trailing zeros
'0.00001'
>>> '{:.10f}'.format(1000).rstrip('0').rstrip('.')  # remove trailing zeros and '.'
'1000'