嗨,我已根据我的项目要求编写了此查询。但它会产生错误的输出。
select (to_char((33)/nullif((17400/3600),0),'FM99,999,999'))::character varying as userdatas
目前它正在生成 8 作为输出。但根据计算不同,
= 33/(17400/3600)
= 33/(4.8333333333333)
= 33/4.8333333333333
= 6.8275862068966
它应该显示 7
谁能帮我解决这个问题?
你所有的数字都是整数,所以整个表达式是使用整数除法完成的。您需要提供数字常量,例如使用
3600.0
或强制转换至少一个数字numeric
返回 6.8276,当应用 to_char() 时,它被正确四舍五入为 7:
在线示例