Sql 是否总是四舍五入到特定的小数点?
我有42.4300001,我希望值为42.44。在PostgreSQL中有没有一种很好的方法可以做到这一点?一种方法是Sql 是否总是四舍五入到特定的小数点?,sql,postgresql,rounding,Sql,Postgresql,Rounding,我有42.4300001,我希望值为42.44。在PostgreSQL中有没有一种很好的方法可以做到这一点?一种方法是 trunc(42.4300001::numeric + 0.00999999999999999999999999, 2) 双参数trunc函数需要转换为numeric 注意:这只适用于实数和双精度数字。一种方法是 trunc(42.4300001::numeric + 0.00999999999999999999999999, 2) 双参数trunc函数需要转换为numer
trunc(42.4300001::numeric + 0.00999999999999999999999999, 2)
双参数trunc
函数需要转换为numeric
注意:这只适用于实数
和双精度
数字。一种方法是
trunc(42.4300001::numeric + 0.00999999999999999999999999, 2)
双参数trunc
函数需要转换为numeric
注意:这只适用于实数
和双精度
数字。
ceil()
始终舍入到下一个整数。结果:42.4400000000000000
要减少尾随零,可以执行以下操作
trunc(结果,2)
或转换为result::decimal(数字,2)
ceil()
始终舍入到下一个整数。结果:42.4400000000000000
要减少尾随零,可以执行以下操作
trunc(result,2)
或cast toresult::decimal(digits,2)
这会在小数点左侧加上1,并且不会将.43
四舍五入到.44
哦,抱歉,修复了。您的修复无法使用仍然四舍五入的42.44
。但是你的解决方案还是会加起来的。这很容易纠正。@LaurenzAlbe我不相信加一个数字是一个通用的解决方案。这可能又错了:42.4300000000000000001
这会在小数点左侧加1,并且不会将.43
四舍五入到.44
哦,抱歉,已经修复。您的修复将无法使用仍然四舍五入的42.44
。但是你的解决方案还是会加起来的。这很容易纠正。@LaurenzAlbe我不相信加一个数字是一个通用的解决方案。这将再次出错:42.4300000000000000000000001