SQL小数点将删除多余的值。

时间:2019-11-29 05:37:58

标签: sql

我在SQL数据库中有一些关于8.829291值的情况。

在这种情况下,如果我正在跑步:

select cast(ROUND(8.89291,0) as float)  

输出为:9

我真正想要的是

输出为:8.9

如何获得该值?

请你们帮我吗?

4 个答案:

答案 0 :(得分:4)

您的precision为0,因此它给出了整个值。

select cast(round(8.89291, 1) as float)

答案 1 :(得分:3)

如果您愿意公开发布,则也不需要致电ROUND。考虑强制转换为NUMERIC(10,1):

SELECT CAST(8.89291 AS NUMERIC(10,1));

Demo

(用于SQL Server的演示程序,但以上内容也可以在许多其他数据库上运行)

答案 2 :(得分:1)

您已选择0,这意味着float函数将被视为Integer,因为float必须输入1而不是0,请检查下一个。

select cast(ROUND(8.89291,1) as float)

答案 3 :(得分:1)

您可以使用

SELECT CAST(ROUND(8.89291,2) AS NUMERIC(12,1))

SELECT CAST(8.89291 AS NUMERIC(12,1))