在 python 中,您可以以类似于其他语言的方式格式化数字:
print '%.2f' % number
print '%.3g' % number
有关可用标志和转换的更多详细信息,请参阅字符串格式。
或者,您可以使用str.format()
或Formatter
:
'{0:.2f}'.format(number)
'{0:.3g}'.format(number)
有关格式表达式语法的详细信息,请参阅格式字符串语法。
转换产生的f
符号总是包含小数点,并且可能导致大数字的字符串表示非常长,而非常小的数字则为 0.00。
根据g
数字的大小,转换产生有或没有指数的符号。但是,精度参数的解释与g
转换f
不同。因为f
它是小数点后的位数,而g
它是显示的所有有效位数。有关详细信息,请参阅字符串格式。
对精度参数的不同解释的原因是,在处理数量级非常不同的数字时,坚持固定数量的有效数字会更有意义。
如果您决定不遵循此处的约定,您将需要编写对不同大小的数字使用不同格式表达式的代码。但是请注意,这将导致您的代码根据其大小产生不同精度的数字,例如 345.89 有五个有效数字,而 3.46e+10 和 3.46e-10 只有三个。