我遇到代码问题,当我运行时我得到了
An invalid floating point operation occurred
我的代码如下:
select POWER( ISNULL(value1,0) / NULLIF(value2,0) , 12 / CONVERT(numeric(6,2),value3))
其中value1(数据类型:money),value2(数据类型:money),value3(数据类型:int)是我数据库中的列。
当value1 = Null,value2 = 164083520.00且value3 = 177
时,我收到该错误奇怪的是,如果我用这些数字替换,我得到了正确的结果,但不是在运行时。
有什么想法吗?
答案 0 :(得分:0)
执行以下脚本我在SQL Server 2012上没有收到任何错误.AFAICT你也不会在其他版本上获得任何错误。您必须在其他地方进行计算,导致浮点运算无效。
DECLARE @values TABLE(value1 MONEY,value2 MONEY,value3 INT);
INSERT INTO @values(value1,value2,value3)VALUES(NULL,164083520.00,177);
SELECT
result=POWER(ISNULL(value1,0)/NULLIF(value2,0), 12.0/CONVERT(numeric(6,2),value3))
FROM
@values;
结果
0.00