默认情况下如果数值非常大或非常小会显示为科学计数法,用f-string可以指定数字的显示格式。
参考这里的说明:https://docs.python.org/zh-cn/3/library/string.html#formatspec
f或F类型会用定点数输出数值,不会用科学计数法显示数字。用法如下:
f'{num:f}’ 根据内容自动确定显示位数
f'{num:5f}’ 最小总宽度显示为5位,不足部分在左边用空格填充,最大宽度则由内容决定
f'{num:05f}’ 最小总宽度显示为5位,不足部分在左边用0填充,最大宽度则由内容决定
f'{num:.2f}’ 小数点后最少显示5位,不足部分在右边用0填充,超出部分四舍五入
f'{num:5.2f}’ 总宽度最少显示5位,不足部分在左边用空格填充,最大宽度则由内容决定,小数点后最少显示2位,不足部分在右边用0填充,超出部分四舍五入
f'{num:05.2f}’ 总宽度最少显示5位,不足部分在左边用0填充,最大宽度则由内容决定,小数点后最少显示2位,不足部分在右边用0填充,超出部分四舍五入
from decimal import Decimal
num = Decimal("8.355")
print(f'{num:f}')
print(f'{num:5f}')
print(f'{num:05f}')
print(f'{num:.5f}')
print(f'{num:5.2f}')
print(f'{num:05.2f}')
输出的结果为:
8.355
8.355
8.355
8.35500
8.36
08.36
注意:
python的四舍五入采用的是四舍六入五成双,具体可以看这篇文章:
https://www.cnblogs.com/gxfaxe/p/14970856.html
f-string的更多用法可以参考这里:
https://zhuanlan.zhihu.com/p/668918715