sql 错误,四舍五入
Error in sql with rounding
我对 SQL 有一个非常奇怪的问题。我有一个数字为22的单元格,当我想把它四舍五入时,结果不正确。
如果我尝试使用数字而不是单元格,代码运行良好。
select Mora2, round(Mora2/30,0)*30, mora2+1,
round((mora2+1)/30,0)*30, round(convert(float,mora2)/30,0)*30
from Trimestre
结果是
Mora2 (No column name) (No column name) (No column name) (No column name)
22 30 23 30 30
如果我尝试使用该号码,代码运行良好。
select round(22/30,0)*30 as Mora2
Mora2
0
为什么会这样?
谢谢!
您可以 CAST(Mora2 AS INT)
无论何时使用它来去除小数部分并确保整数除法。
当分子或分母不是整数时,除法结果会有小数位。所以 22.0/30
= 0.733333
而 22/30
= 0
我对 SQL 有一个非常奇怪的问题。我有一个数字为22的单元格,当我想把它四舍五入时,结果不正确。
如果我尝试使用数字而不是单元格,代码运行良好。
select Mora2, round(Mora2/30,0)*30, mora2+1,
round((mora2+1)/30,0)*30, round(convert(float,mora2)/30,0)*30
from Trimestre
结果是
Mora2 (No column name) (No column name) (No column name) (No column name)
22 30 23 30 30
如果我尝试使用该号码,代码运行良好。
select round(22/30,0)*30 as Mora2
Mora2
0
为什么会这样?
谢谢!
您可以 CAST(Mora2 AS INT)
无论何时使用它来去除小数部分并确保整数除法。
当分子或分母不是整数时,除法结果会有小数位。所以 22.0/30
= 0.733333
而 22/30
= 0