You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何显示小数点后数字?在线编译器除法取整问题求助

问题:SQL中9/5结果为1而非1.8的解决办法

这是因为SQL中整数之间的除法会执行整数除法——当两个操作数都是整数时,结果会直接舍弃小数部分,只保留整数商,所以9/5得到的是1,而非1.8。后续的round函数自然也无法生效,因为它处理的已经是整数1了。

解决方法很简单,只要让除法操作中至少有一个操作数是浮点数/小数类型即可,常见的实现方式有两种:

  1. 直接将其中一个数字写成小数形式:
select first_name, 
9.0/5,
round(9.0/5, 2)
from Customers
  1. 使用CAST或CONVERT函数显式转换数据类型:
select first_name, 
CAST(9 AS DECIMAL)/5,
round(CAST(9 AS DECIMAL)/5, 2)
from Customers

这样修改后,除法会按浮点数规则计算,得到1.8,round函数也能正常将结果保留两位小数为1.80。

内容的提问来源于stack exchange,提问作者asdf1212

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:31:19