我在一个SQL函数中有下面的值,我正在尝试使用它来进行计算。取值如下:
value1: 1.567276144
value2: 278576312934.824
方程式是value1 / value2
Excel返回以下值: 0.000000000005626020847823060000 (正确)
但是在SQL-Server中,它返回: 0.000000000000000
数据类型为decimal(38,24)
为什么小数点后12到15位没有出现?我知道价值很小,但我们在做科学工作时,需要对我们的认证进行精准。
发布于 2013-10-10 00:20:53
据我所知,小数精度是17,请改用浮点数
编辑:对不起,想到了列的定义
发布于 2013-10-10 00:37:03
遵循一种方法,但使用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;
https://stackoverflow.com/questions/19277284
复制相似问题