0

我在一个 SQL 函数中有以下值,我想让计算工作。值如下:

值1:1.567276144

值2:278576312934.824

方程是value1 / value2

Excel 返回以下值:0.000000000005626020847823060000(正确)

但是在 SQL-Server 中它返回: 0.000000000000000

数据类型是decimal(38,24)

为什么小数点后第 12-15 位不出现?我知道这些值非常小,但我们在做科学工作时需要精确的认证。

4

2 回答 2

0

我记得十进制精度是 17,改用浮点数

编辑:对不起,想到了列定义

于 2013-10-09T16:20:52.747 回答
0

遵循一种方式,但使用 float 不是一个好主意,因为 float 是一种近似数据类型:

declare  @val1 decimal(38,24) = 1.567276144 
declare  @val2 decimal(38,24) = 278576312934.824
declare  @val3 decimal(38,24)
select @val3 = cast (cast(@val1 as float)/cast (@val2 as float) as decimal(38,24));
select @val3;
于 2013-10-09T16:37:02.630 回答