返回零作为值

时间:2013-10-09 16:13:09

标签: sql sql-server-2008

我在SQL函数中有以下值,我正在使用它来进行计算。值如下:

value1:1.567276144

值2:278576312934.824

等式为value1 / value2

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

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

数据类型为decimal(38,24)

为什么没有出现第12~15位小数?我知道价值观非常小,但我们在进行科学研究时需要对我们的认可进行精心设计。

2 个答案:

答案 0 :(得分:0)

只要我记得十进制精度为17,请使用float而不是

编辑:抱歉,想到列定义

答案 1 :(得分: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;