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

SQLite执行除法查询无法显示小数数值,求原因及解决办法

SQLite整数除法导致round结果不符合预期的问题解决

问题原因

SQLite对整数之间的除法会执行整数除法,直接截断小数部分。你写的10/3中,10和3都是整数,计算结果先得到整数3,后续再对3调用round(...,5),最终结果只能是3.0——这就是你尝试转float、用round等操作无效的核心原因:除法已经把小数部分丢掉了,后续操作无法找回。

解决方法

只要确保除法运算时至少有一个操作数是浮点型,就能触发浮点除法,保留小数部分后再用round处理:

  • 直接将其中一个数写成浮点格式:
    select round(10.0/3, 5) as example
    
  • 用CAST显式转换类型:
    select round(CAST(10 AS FLOAT)/3, 5) as example
    
  • 先通过乘1.0将整数转为浮点再计算:
    select round((10*1.0)/3, 5) as example
    

以上方法都会得到3.33333的正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:22:31