Python输出小数总带6个零?一招搞定精度控制

你用Python输出一个浮点数,满心期待看到65.45,结果屏幕上赫然显示:

65.450000

后面跟了四个零,跟狗皮膏药一样甩都甩不掉。

你说我就想保留两位小数,怎么就这么难?

其实一点都不难,只是你还没掌握占位符的精度控制。今天就把这个知识点一次讲透——看起来复杂,但99%的场景你只需要记住一个写法就够了。


先搞清楚:m.n是个什么玩意儿?

上篇文章我们学了三种占位符:%s(字符串)、%f(浮点数)、%d(整数)。

这三种占位符,都可以在%和字母之间插入一个m.n的格式,来控制输出的宽度和精度。

%m.ns   →   m=宽度, n=精度
%m.nf   →   m=宽度, n=精度
%m.nd   →   m=宽度

看起来有点绕?别急,我们一个一个拆开说。


一、字符串占位符%s:m控制宽度,n控制长度

先说字符串。假设有个变量name = "张三",用%s输出就是"张三",两个字符。

m的作用:设置最小宽度。

如果你写%4s,意思是"这个位置至少占4个字符宽"。但"张三"只有2个字符,不够怎么办?Python自动用空格补齐:

python

print("我叫%4s" % "张三")    # 输出:我叫  张三(前面补了2个空格)

如果m比字符串本身还小呢?比如%1s?那m就自动失效,原样输出"张三"。毕竟人家自己就两位,你设个最小宽度1,没有意义。

m还有个隐藏规则:正数右对齐,负数左对齐。

python

print("我叫%4s" % "张三")     # 右对齐:我叫  张三
print("叫%-4s" % "张三")      # 左对齐:叫张三  

正4,空格补在左边,文字靠右。负4,空格补在右边,文字靠左。就像Word里的对齐方式一样。

n的作用:最多输出n个字符。

如果你写%.1s,意思是"只展示1个字符":

python

print("我叫%.1s" % "张三")    # 输出:我叫张(只留了一个字)

注意,写n的时候前面一定要带那个点.1。不写点就变成了m,意思完全不同。

如果n比字符串长度大呢?比如"张三"只有2个字,你写%.3s?n自动失效,还是输出"张三"。n只截断不补齐——少了不补,多了才砍。

m和n可以一起用:

python

print("我叫%4.1s" % "张三")   # 先取1个字"张",再补3个空格 → "  张"

Python的处理顺序是:先砍精度,再补宽度。先把"张三"砍成"张",再把"张"补到4位宽。


二、浮点数占位符%f:重点来了,99%的场景用这个

字符串的精度控制说实话用得不多。真正高频使用的是浮点数的精度控制。

还记得前面那个65.450000的问题吗?这就是因为%f默认保留6位小数。

n的作用:控制小数点后保留几位。

python

weight = 65.45

print("体重%f" % weight)       # 默认6位:65.450000
print("体重%.1f" % weight)     # 保留1位:65.5(四舍五入)
print("体重%.2f" % weight)     # 保留2位:65.45
print("体重%.3f" % weight)     # 保留3位:65.450(不够补零)

看到规律了吗?

这就是解决"一堆零"问题的核心武器。

你以后看到任何浮点数输出带一堆零,直接在%和f之间加个.n就完事了。想保留几位就写几。

实际开发中最常用的就是这个:%.1f或%.2f。

保留1位小数用%.1f,保留2位用%.2f。仅此而已。其他的什么宽度控制、字符串精度,基本用不到。


三、整数占位符%d:只有m,没有n

整数没有小数点,所以不存在精度控制的问题。%d只支持m(宽度控制):

python

age = 12

print("年龄%d" % age)        # 正常输出:年龄12
print("年龄%4d" % age)       # 最小宽度4:年龄  12(补2个空格)
print("年龄%-4d" % age)      # 左对齐:年龄12  

规则和字符串的m一模一样:正数右对齐补空格,负数左对齐补空格。


四、一张表汇总所有规则

占位符

m(宽度)

n(精度)

备注

%s


字符串

最小宽度,不够补空格

最多输出n个字符

m正=右对齐,m负=左对齐

%f


浮点数

最小宽度,不够补空格

小数点后保留n位

n默认6;超了补0,短了四舍五入

%d


整数

最小宽度,不够补空格

不支持

整数没有小数位

核心记忆点:


五、实际开发中你只需要记住一个

上面说了这么多,看着是不是有点头晕?

别怕。视频最后老师说了大实话:实际开发中,99%的场景你只需要记住%.nf这一个写法。

其他的什么%4s、%-4d、%4.1s,基本碰不到。就算碰到了,翻回来看这张表就行,不用背。

这就好比你学开车,驾校教了你坡道起步、侧方停车、曲线行驶一大堆。但日常开车,你用的最多的就是踩油门和踩刹车。精度控制也一样,花里胡哨的规则一大堆,真正天天用的就那一个。


总结

Python占位符精度控制,核心就三句话:

1. 浮点数默认6位小数,用%.nf控制位数。 这是最常用的,记住这一个就够了。

2. m控制宽度,n控制精度。 m不够补空格,n对浮点数能补零能四舍五入。

3. 写n一定要带点。 .1是精度,1是宽度,差一个点意思完全不同。

下次再看到65.450000,别慌,加个.1变成%.1f,输出干干净净的65.5。


觉得有帮助的话,点个关注,后续持续分享Python入门干货,用大白话讲透每一个知识点。

展开阅读全文

更新时间:2026-07-09

标签:科技   小数   精度   宽度   空格   字符串   整数   字符   最小   年龄   小数点

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号

Top