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

PostgreSQL除法查询结果因精度显示为0,如何输出正确小数值

问题原因

PostgreSQL 中两个整数做除法运算时默认执行整数除法,会直接截断小数部分只保留整数位。你之前的写法是先执行25/8175133得到整数0之后再做类型转换,自然不会得到正确的小数值。另外你写的第二个类型转换语句多打了一个AS关键字,即使修正这个语法问题,也不会得到预期结果。

解决方法

你只需要在做除法运算前,把其中一个操作数转换为非整数的数值类型即可:

  • 方法1:显式转换其中一个操作数的类型
    -- 转换为DECIMAL类型做运算
    SELECT CAST(25 AS DECIMAL) / 8175133;
    -- 转换为DOUBLE PRECISION类型做运算
    SELECT CAST(25 AS DOUBLE PRECISION) / 8175133;
    
  • 方法2:简化写法,给整数添加.0后缀,PostgreSQL会自动识别为numeric类型
    SELECT 25.0 / 8175133;
    
  • 方法3:如果需要控制输出的小数位数,可以搭配ROUND函数使用
    -- 示例:保留10位小数
    SELECT ROUND(25.0 / 8175133, 10);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:06:01