文章目录
- 一、Python 字符串格式化
- 1、浮点数精度问题
- 2、浮点数精度控制
一、Python 字符串格式化
1、浮点数精度问题
在上一篇博客 【Python】字符串 ③ ( Python 字符串格式化 | 单个占位符 | 多个占位符 | 不同类型的占位符 ) 中 , 拼接字符串中 , float 浮点类型出现如下情况 , 小数点后有 6 位 ;
代码示例 :
# 不通过类型的占位符
name = "Tom"
age = 18
money = 88.88
info = "%s is %d years old, has %f dollors" % (name, age, money)
print(info)
执行结果 :
Tom is 18 years old, has 88.880000 dollors
2、浮点数精度控制
使用 辅助符号 " m.n " 可以控制数据的 宽度 和 精度 ;
- m 用于控制宽度 , 如果 设置的 宽度 小于 数字本身的宽度 , 该设置不生效 ;
- n 用于控制小数点的精度 , 最后一位会进行四舍五入 ;
浮点数精度控制示例 :
- 设置宽度 :
%3d
用于设置宽度为 3 位 , 如果数字为 1 , 其被设置了 3 位的宽度 , 在打印时 , 会在 1 前面添加两个空格 ;1
打印时为[空格][空格]1
, 前面加了 2 个空格 , 构成 3 位 ;
- 设置宽度和精度 :
%7.2f
用于设置整体宽度为 7 ( 包含小数点 ) , 小数部分为 2 位 ;1
打印时为[空格][空格][空格]1.00
, 前面加了 3 个空格 , 构成 7 位 ;
- 设置精度 :
%.3f
用于设置小数点后 3 位精度 , 数字的宽度有几位不进行限定 ;1
打印时为1.000
;
代码示例 :
# 数字精度控制
num = 1
# 设置宽度
print("数字 1 宽度 5 : %5d" % num)
num = 1.01
# 设置 宽度 + 精度
print("数字 1.01 宽度 5 : %5.2f" % num)
# 设置精度
print("数字 1.01 精度 1: %.1f" % num)
执行结果 :
数字 1 宽度 5 : 1
数字 1.01 宽度 5 : 1.01
数字 1.01 精度 1: 1.0