round返回数字表达式并四舍五入为指定的长度或精度。 显示的界面上要求只保留到小数点后4位,发现round(表达式,4,1)可以截断小数点4位后的数字 如果写(round,4)表示对小数点后4位四舍五入,但不截断多的0
MSSQL Round函数四舍五入保留小数点后多少位小数是由其长度参数所决定的。
ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND (
numeric_expression , length [ , function
] )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是
tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、smallint 或
int。如果省略 function 或 function 的值为
0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断
numeric_expression。
返回类型
返回与 numeric_expression 相同的类型。
例如
round(1.4567,3) 将返回 1.4570 也就是1.457
round(1.4562,3) 将返回 1.4560 也就是1.456
注意尽管我们可以设置很长的小数位数,如100位,但是实际能保留的最多小数位数取决于被计算数字的数据类型,小数点后最多37位应该是极限了,长度再多也取不到了。
Updatesql.Format("update Ssd_History_Day SET Rain4 = ROUND(%.4f, 1) where stationNum= '%s' and obserdate= '%s'"
, st_data.Rain1, st_data.strStationID, UpdateRain4Time);
这个是我项目中用到的,希望对你有用
将A表的clum列保留N位小数,其余四舍五入
select round(clum,N) from B
round(金额,2)