Problémy zaokrouhlování v desetinných číslech v SQL

Autor: Roger Morrison
Datum Vytvoření: 24 Září 2021
Datum Aktualizace: 1 Prosinec 2024
Anonim
Problémy zaokrouhlování v desetinných číslech v SQL - Články
Problémy zaokrouhlování v desetinných číslech v SQL - Články

Obsah

Jazyk SQL automaticky zaokrouhlí čísla, pokud sloupec tabulky, do kterého uložíte, umožňuje pouze určitou přesnost desetinných míst. Můžete pracovat s problémy s přesností pomocí funkce SQL "round". Tato funkce umožňuje řídit, jak SQL ukládá číselné hodnoty do databázových tabulek.


Naučte se jak zaokrouhlit čísla v SQL (Hemera Technologies / AbleStock.com / Getty Images)

Problém

Problém se zaokrouhlením SQL si všimnete při pohledu na data v tabulkách. Zobrazená číselná hodnota není stejná jako hodnota, kterou jste uložili pomocí příkazu "insert". Datové typy sloupců SQL umožňují nastavit přesnost desetinné tečky. Pokud chcete mít pouze dvě desetinná místa a pokuste se uložit číslo se třemi, zaokrouhluje hodnotu SQL.

Struktura tabulky

Datový typ sloupce můžete změnit pomocí editoru tabulky SQL. Tabulky můžete upravit v aplikaci Microsoft SQL Server Management Studio, která je dodávána se serverem SQL Server. Klikněte pravým tlačítkem myši na tabulku a zvolte "Změnit". Vyberte přesnost v seznamu datových typů sloupců, abyste zvýšili počet desetinných míst a opravili problém zaokrouhlení.


Kulatá funkce

Pokud nechcete změnit typ dat v tabulce, použijte funkci zaokrouhlení ke změně chování číselného úložiště. Zaokrouhlit nahoru, dolů nebo nechat funkci provádět standardní zaokrouhlování desetinných hodnot. Například následující kód zaokrouhluje nahoru:

kolo (sloupec, 2, -1)

Tato funkce zaokrouhluje na dvě desetinná místa vždy vzhůru. Odstranění parametru "-1" způsobí, že SQL provede standardní zaokrouhlení, tj. Nahoru, pokud je hodnota větší nebo rovna "5" a dolů, pokud je hodnota nižší.

Úvahy

Když změníte chování zaokrouhlování v SQL, musíte také zkontrolovat libovolný sloupec, který má součet zaokrouhlených čísel. Tento sloupec bude mít nesprávnou hodnotu, takže budete muset přepočítat součet a opravit případné chyby.