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

使用TRUNC函数未返回指定小数位结果的技术咨询

问题分析:TRUNC函数返回整数而非预期小数结果的原因

你遇到的问题核心是整数除法的特性:因为col_a和col_b都是int4(整数类型),数据库里两个整数相除时,会直接执行整数除法——也就是舍去所有小数部分,只保留整数商。所以309/16在计算时先得到了19,再对19执行TRUNC(...,1),结果自然还是19。

要得到预期的19.3,你需要先把其中一个整数字段转换为数值类型,让除法运算先得到带小数的结果,再用TRUNC截断:

TRUNC( col_a::numeric / col_b, 1 )

这样col_a被转为numeric类型后,309::numeric /16会得到19.3125,再TRUNC到1位小数就是19.3。

如果需要保留整数位的小数形式(比如19.0),可以用同样的类型转换后TRUNC到0位,或者直接转换结果类型即可。

内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:12:33