发生了无效的浮点运算

Jam*_*ett 3 sql-server-2008

我有一个SQL查询的问题,我已经缩小到以下代码

SELECT ACOS( (SIN(PI()* 52.9519918465976/180)*SIN(PI()* 52.9519918465976/180))+(COS(PI()*   52.9519918465976/180)*cos(PI()* 52.9519918465976/180)*COS(PI()* -1.14304013581239/180-PI()* -1.14304013581239/180))) AS test
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息'发生了无效的浮点运算'

可以看看问题是什么?

提前致谢

jue*_*n d 6

你的结果ACOS()大于1不可能的结果.

那是因为浮点不准确.1.00000001例如,它可能是.把它放在下面1就像这样:

SELECT ACOS( 
             (SIN(PI()* 52.9519918465976/180.0)* SIN(PI()* 52.9519918465976/180.0))
             + (COS(PI()* 52.9519918465976/180)*cos(PI()* 52.9519918465976/180.0)*COS(PI()* -1.14304013581239/180.0-PI()* -1.14304013581239/180.0)) 
             - 0.0000001
           ) 
Run Code Online (Sandbox Code Playgroud)