ROUND函数和INT函数有什么区别?四舍五入 vs 向下取整

办公软件 · 2026-09-01 · 阅读约 6 分钟

ROUND 是四舍五入,还能指定保留几位小数:ROUND(3.14159,2) 得 3.14。INT 是向下取整,直接舍到不大于它的最大整数:INT(3.9) 得 3,不管小数部分多大。最大的坑在负数——INT(-3.2) 得的是 -4 不是 -3,因为它朝负无穷方向取整;想"直接砍掉小数"要用 TRUNCTRUNC(-3.2) 才是 -3。

ROUND四舍五入
INT向下取整
5 个避坑要点

1先给结论:核心差异

  • ROUND(数值, 小数位数):四舍五入。第二参数指定保留几位小数,可正可负可为 0。ROUND(3.14159,2)=3.14ROUND(3.5,0)=4ROUND(1234.5,-2)=1200
  • INT(数值):向下取整,结果永远是整数,没有第二参数。取"不大于它的最大整数":INT(3.9)=3INT(3.1)=3,不管小数多大一律舍掉。
  • 负数时两者方向不同(最大区别):INT(-3.2)=-4(朝更小的方向),而 ROUND(-3.2,0)=-3(按绝对值四舍五入)。想"砍掉小数不管正负"用 TRUNC(-3.2)=-3

简单记忆:要保留小数或按四舍五入取整数用 ROUND;要给正数无条件舍掉小数用 INT;涉及负数取整,先想清楚要 -3 还是 -4,再决定用 INT 还是 TRUNC。

关于入口的说明:ROUND 在"公式 - 数学与三角函数"里,INT、TRUNC、ROUNDUP、ROUNDDOWN 同在一组。也可以直接在单元格里手写 =ROUND(。具体菜单位置以你软件的实际界面为准,版本不同按钮名可能略有差异。本文讲清逻辑,面板随版本微调即可。

2什么是取整

"取整"就是把带小数的数变成整数或更少位的小数。Excel 提供了好几种规则,区别全在往哪个方向舍

  • 四舍五入:看要舍去部分的首位,≥5 进位、<5 舍去。最符合日常直觉,ROUND 用这个规则。
  • 向下取整(朝负无穷):取不大于原数的最大整数。正数时是"舍掉小数",负数时会变得更小。INT 用这个规则。
  • 向上取整(朝正无穷):取不小于原数的最小整数。ROUNDUP 用这个规则(正数进位、负数也朝 0 方向)。
  • 截断(朝零):直接把小数部分砍掉,不管正负都朝 0 靠。TRUNC 用这个规则。

关键区别:正数的情况下 INT 和 TRUNC 结果一样(都是砍掉小数),所以很多人用了很久都没发现问题;一旦出现负数,两者结果就差 1,这正是最容易出错的地方。

3同族函数对照表

函数 规则 典型结果
ROUND(x,n)四舍五入,保留 n 位小数ROUND(3.14159,2)=3.14ROUND(3.5,0)=4ROUND(1234.5,-2)=1200
INT(x)向下取整(朝负无穷),无第二参数INT(3.9)=3INT(-3.2)=-4(注意!)
TRUNC(x,n)截断(朝零),可指定小数位TRUNC(3.9)=3TRUNC(-3.2)=-3
ROUNDUP(x,n)向上舍入(远离零)ROUNDUP(3.1,0)=4ROUNDUP(-3.1,0)=-4
ROUNDDOWN(x,n)向下舍入(朝零)ROUNDDOWN(3.9,0)=3ROUNDDOWN(-3.9,0)=-3

4关键:负数行为与语法

负数是最大的分水岭

' 同一个数 -3.2,四个函数给四种结果 =INT(-3.2) ' -4 向下取整,朝负无穷 =TRUNC(-3.2) ' -3 截断,朝零 =ROUND(-3.2,0) ' -3 四舍五入 =ROUNDDOWN(-3.2,0) ' -3 朝零舍入

做财务时这个差异很要命:如果某笔负数金额(如红字冲销、退款)用 INT 取整,会凭空多出 1 个单位的差额,报表因此对不平

ROUND 的第二参数可以为负

=ROUND(1234.5, 2) ' 1234.5 保留2位小数 =ROUND(1234.5, 0) ' 1235 取整 =ROUND(1234.5, -1) ' 1230 精确到十位 =ROUND(1234.5, -2) ' 1200 精确到百位 ' 负数位 = 对小数点左边做四舍五入,做金额概算时很好用

别把 INT 当"四舍五入"或"去小数"用。正数的场景下 INT 看起来就是砍掉小数(INT(3.9)=3),用着没问题;一旦数据里出现负数,INT(-3.2) 会给出 -4,比原数小了 0.8。财务数据里负数很常见(红字、冲销、差额),用错就会算错钱。想"不管正负都直接砍掉小数",请用 TRUNCROUNDDOWN

55 个最容易翻车的坑

  • 坑 1 · INT 处理负数结果变小:以为 INT(-3.2) 是 -3,实际是 -4。→ 要"砍小数"用 TRUNC;要按四舍五入用 ROUND。
  • 坑 2 · 拿 INT 当四舍五入用:INT(3.9) 得 3 不是 4,因为它无条件舍。→ 要四舍五入用 ROUND(x,0)
  • 坑 3 · 只改显示不改真实值:用"减少小数位数"按钮只是显示成 3.14,底层仍是 3.14159,后续计算仍按原值,求和可能对不平。→ 要真正改变数值必须用 ROUND 等函数,或"文件 - 选项 - 高级"里勾"将精度设为所显示的精度"(会永久丢失精度,慎用)。
  • 坑 4 · 浮点误差导致结果反直觉:计算机二进制存储导致 ROUND(2.675,2) 可能得 2.67 而非 2.68。→ 金额计算可先 ROUND(x+0.0000001,2),或统一以"分"为单位存整数再除回。
  • 坑 5 · 漏写第二参数:只写 ROUND(A1) 会报错或提示参数不足。→ ROUND 必须带第二参数;如果本来就要取整,写 ROUND(A1,0)

6常见问题

想"不管正负都直接去掉小数",用哪个?
TRUNCROUNDDOWN,两者都是朝零方向处理:TRUNC(3.9)=3TRUNC(-3.2)=-3。别用 INT——INT 是朝负无穷,负数时会多减 1。
金额保留两位小数,用 ROUND 还是设置单元格格式?
看目的。只想显示整齐用单元格格式(数字 - 两位小数),底层值不变;要让后续计算也按两位算(如避免合计出现分位差),必须用 ROUND(x,2) 真正改值。财务对账场景建议用 ROUND,否则逐行显示两位、合计却对不上的情况很常见。
为什么 ROUND(2.675,2) 得到 2.67 而不是 2.68?
这是二进制浮点存储的固有误差——2.675 在内存里实际略小于 2.675,所以舍入时判为舍去。若对精度要求高,可写 ROUND(A1+0.0000001,2) 微调,或把金额以"分"为单位存成整数(如 267 分),最后再除以 100 显示,从根本上避开浮点问题。
ROUND 的第二参数写负数是什么意思?
表示对小数点左边做四舍五入,即精确到十位、百位、千位。ROUND(1234.5,-1)=1230(精确到十位)、ROUND(1234.5,-2)=1200(精确到百位)、ROUND(1234.5,-3)=1000。做金额概算、把明细凑整到百元时很实用。
WPS 表格里这些函数一样吗?
一样。WPS 支持 ROUND、INT、TRUNC、ROUNDUP、ROUNDDOWN,语法与负数行为都和 Excel 一致(INT 同样是向下取整、负数朝负无穷),仅个别菜单位置略有差异,以你软件实际界面为准。

相关文章

算出来的数总对不平?河池本地办公培训带你提速

河池点金除金蝶财税软件外,也提供电脑办公实战培训:从 ROUND/INT/TRUNC 取整规则与负数陷阱、SUMIF 与 SUMIFS 条件求和、IF/IFS 多条件判断,到会计专用格式对齐金额、打印区域与分页设置、金蝶报表引出 Excel 后的核对。把这几个函数逻辑练熟,金额分位对不平、报表差一分钱的问题都能从根上解决。

咨询办公培训