SQL-在小数点后第六位截断

时间:2018-10-12 13:42:07

标签: sql

因此,我有一个值123.123456789,我正尝试返回123.123456。我在下面尝试的查询将第6个十进制数字舍入到下一个数字。请帮助仅返回123.123456。 (不舍入!)

select cast(cast(123.123456789 as DECIMAL(9,6)) as float)

2 个答案:

答案 0 :(得分:2)

使用ROUND。第一个参数是您的数字,第二个参数是精度,第三个参数是一个数字,指示是否应舍入舍入(0舍入,其他任何数字都将截断)。

select cast(cast(round(123.123456789,6,1) as DECIMAL(9,6)) as float)

答案 1 :(得分:0)

select round(numeric_expression, length [, function])

参数

numeric_expression 是精确数字或近似数字数据类型类别的表达式,比特数据类型除外。

长度 将numeric_expression舍入到的精度。 length必须是tinyint,smallint或int类型的表达式。当length为正数时,numeric_expression将舍入为length指定的小数位数。当length为负数时,numeric_expression根据长度指定在小数点左侧舍入。

功能 是要执行的操作的类型。函数必须是tinyint,smallint或int。如果省略函数或值为0(默认值),则将数字表达式四舍五入。当指定非0的值时,numeric_expression被截断。

如此处所述: https://docs.microsoft.com/en-us/sql/t-sql/functions/round-transact-sql?view=sql-server-2017