Problem:
Chcesz zaokrąglić liczbę do określonej liczby miejsc po przecinku.
Przykład:
Nasza baza danych zawiera tabelę o nazwie product
z danymi w następujących kolumnach:id
, name
i price_net
.
id | imię | price_net |
---|---|---|
1 | chleb | 2,34 |
2 | rogaliki | 1.22 |
3 | rolka | 0,68 |
Załóżmy, że na każdy produkt jest nałożony podatek w wysokości 24% i chcesz obliczyć cenę brutto każdego produktu (tj. po opodatkowaniu) i zaokrąglić wartość do dwóch miejsc po przecinku.
Rozwiązanie:
SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross FROM product;
To zapytanie zwraca cenę brutto zaokrągloną do dwóch miejsc po przecinku:
id | price_brutto |
---|---|
1 | 2,90 |
2 | 1,51 |
3 | 0,84 |
Dyskusja:
Jeśli chcesz zaokrąglić liczbę zmiennoprzecinkową do określonej liczby miejsc dziesiętnych w SQL, użyj funkcji ZAOKR. Pierwszym argumentem tej funkcji jest kolumna, której wartości chcesz zaokrąglić; drugi argument jest opcjonalny i oznacza liczbę miejsc, do których chcesz zaokrąglić. Domyślnie, jeśli nie określisz drugiego argumentu, funkcja zaokrągla do najbliższej liczby całkowitej.
W tym przykładzie nie określimy liczby miejsc, do których chcemy zaokrąglić kolumnę:
SELECT id, ROUND(price_net*1.24) as price_gross FROM product;
A oto odpowiedni wynik:
id | price_brutto |
---|---|
1 | 3 |
2 | 2 |
3 | 1 |