获取带小数值的数字

时间:2015-05-19 05:12:38

标签: sql sql-server

我正在尝试使用小数值来获取数字。

以下是以下示例:

我有两个数字:621应该除以7,结果应该以数字的形式显示,至少有3位十进制值。因此,结果应为88.714

我的尝试1:

SELECT CAST(621/7 as DECIMAL(5,3));

获得结果为88.000

尝试2:

SELECT CONVERT(DECIMAL(5,3), 621/7);

获得结果为88.000

4 个答案:

答案 0 :(得分:3)

为了避免整数除法,你必须在除法之前进行转换。最简单的方法是:

cast(621*1.0/7 as Decimal(5,3))

在您的示例中,首先进行除法,然后将convert / cast应用于该结果。

答案 1 :(得分:1)

试试这个

SELECT CONVERT(DECIMAL(18,0), 621)/7;

答案 2 :(得分:0)

SELECT CAST(621.000/7 AS DECIMAL(5,3))

应该更好地工作,因为在你的例子中,在演员之前完成了分裂。

答案 3 :(得分:0)

Sql简单地将 621 7 视为int,它将输出转换为Decimal的int中的put。您必须将其显式定义为十进制

var regex = /^[._]?[a-zA-Z0-9]+([._][a-zA-Z0-9]+)*[._]?$/;

这里你要做什么

declare @a decimal(10,3)=621
SELECT CAST(@a/7 as DECIMAL(5,3));

总是给 2 是否将其转换为十进制

select 5/2