sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server Strange Ceiling() beteende

Jag tror att detta kallas flytprecision. Du kan hitta det i nästan alla programmeringsspråk och i databasen också. Detta beror på att data endast lagras med viss precision och faktiskt vad du anger som 8.31 är förmodligen inte 8.31 men till exempel 8.31631312381813 och när det multipliceras och taket kan det orsaka att ett annat värde visas.

SQL-serverdokumentationssida du kan läsa:

I andra databassystem finns samma problem. Till exempel på mysql-webbplatsen du kan läsa:



  1. PL/SQL SQL*Plus-sats ignoreras

  2. SQL Server 2008:Kan inte infoga ny kolumn i mitten och ändra datatyp

  3. MySQL GroupBy och visar det horisontellt

  4. numeric(38,0) som primärnyckelkolumn; bra, dålig, vem bryr sig?