Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wystąpiła nieprawidłowa operacja zmiennoprzecinkowa

Twój wynik w ACOS() jest większy niż 1 co nie może być.

Dzieje się tak z powodu niedokładności zmiennoprzecinkowej. może to być 1.00000001 na przykład. Umieszczając to trochę poniżej 1 działa tak:

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
           ) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to są indeksy obejmujące i objęte zapytania w programie SQL Server?

  2. Przeanalizuj datę z niesformatowanego tekstu w SQL

  3. Zgodność z RODO a Twój serwer SQL

  4. Znajdź dokładne dopasowanie za pomocą wyszukiwania pełnotekstowego

  5. Pobierz wiersze jako kolumny w sqlserver 2008