[英]SQL - Cut off at 6th decimal place
因此,我有一个值123.123456789,并且我试图返回123.123456。 我在下面尝试的查询将第6个十进制数字舍入到下一个数字。 请帮助仅返回123.123456。 (不四舍五入!)
select cast(cast(123.123456789 as DECIMAL(9,6)) as float)
使用ROUND 。 第一个参数是您的数字,第二个参数是精度,第三个参数是指示舍入是否应该截断的数字(0个回合,其他任何数字都将截断)。
select cast(cast(round(123.123456789,6,1) as DECIMAL(9,6)) as float)
select round(numeric_expression, length [, function])
争论
numeric_expression是精确数字或近似数字数据类型类别的表达式,位数据类型除外。
length是numeric_expression要舍入的精度。 length必须是tinyint,smallint或int类型的表达式。 当length为正数时,numeric_expression将舍入为length指定的小数位数。 当length为负数时,numeric_expression在小数点的左侧舍入,由length指定。
功能是要执行的操作的类型。 函数必须是tinyint,smallint或int。 如果省略函数或值为0(默认值),则将数字表达式四舍五入。 当指定非0的值时,numeric_expression被截断。
如此处所述: https : //docs.microsoft.com/zh-cn/sql/t-sql/functions/round-transact-sql?view=sql-server-2017
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.