Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Es ist eine ungültige Gleitkommaoperation aufgetreten

Ihr Ergebnis in ACOS() ist größer als 1 was nicht sein kann.

Das liegt an der Ungenauigkeit des Fließkommas. es könnte 1.00000001 sein zum Beispiel. Setzen Sie es nur ein wenig unter 1 funktioniert so:

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
           )