我想在 Python 中进行打印输出,每次输出 2 位数字。问题是,有非常大(或小)的数字,所以正常的 Python 输出如下所示:
5.89630388655e-09
8.93552349994e+14
但有时也有正常的数字,例如:
345.8976
我只想强制它有两位数,这意味着大数和小数的输出是
5.89e-09
8.93e+14
而普通数字只是在第二个数字处加盖(或四舍五入):
345.89 (or 345.90)
这怎么可能在 Python 中实现?
在 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 只有三个。
您可以使用格式命令:
"({0:.2f})".format(yournumber)
'.2f' 表示两位小数