3

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

「無効な浮動小数点演算が発生しました」というエラー メッセージが表示されます

問題が何であるかを見ることができますか?

前もって感謝します

4

2 に答える 2

7

の結果は、ありえない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
           ) 
于 2012-06-20T09:52:21.047 に答える