> 文章列表 > 【Python】字符串 ④ ( Python 浮点数精度控制 | 控制数字的宽度和精度 )

【Python】字符串 ④ ( Python 浮点数精度控制 | 控制数字的宽度和精度 )

【Python】字符串 ④ ( Python 浮点数精度控制 | 控制数字的宽度和精度 )

文章目录

  • 一、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

【Python】字符串 ④ ( Python 浮点数精度控制 | 控制数字的宽度和精度 )