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

SQL除法运算获取小数结果问题求助

问题解决:Decimal类型输出为整数的原因及修复

问题出在str()函数的默认行为上:该函数如果不指定小数位数参数,会默认只保留整数部分,哪怕你的变量是decimal(16,2)类型,转换后也会丢失小数信息。

修复代码

把查询语句里的str(@fifteenPercent)改为指定小数位数的形式:

select 
    '1-15: (' + trim(str(@fifteen)) +') ' + trim(str(@fifteenPercent, 6, 2)) + '%' as ratingB

说明

str()函数的完整语法是:str(numeric_expression [, length [, decimal_places]])

  • 第三个参数decimal_places默认是0,必须显式设置为2,才能保留两位小数
  • 第二个参数length是字符串总长度(包含小数点、小数位和整数部分),这里设为6足够容纳类似7.28这样的数值(整数位1位+小数点1位+小数位2位,总长度4,留冗余设6即可)

修改后就能得到期望的1-15: (38230) 7.28%输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:25:55