Jak interpretować precyzję i skalę liczby w bazie danych?
Mam następującą kolumnę określoną w bazie danych: decimal(5,2)
Jak to interpretować?
Zgodnie z właściwościami na kolumnie widocznymi w SQL Server Management studio widzę, że oznacza ona: decimal (precyzja numeryczna, Skala numeryczna).
Co oznaczają precyzja i skala w ujęciu realnym?
Łatwo byłoby to zinterpretować jako dziesiętny z 5 cyframi i dwoma dziesiętnymi places...ie 12345.12
P. S. udało mi się określ poprawną odpowiedź od kolegi, ale miał duże trudności ze znalezieniem odpowiedzi online. W związku z tym chciałbym, aby pytanie i odpowiedź zostały udokumentowane tutaj na stackoverflow w przyszłości.
3 answers
Precyzja numeryczna odnosi się do maksymalnej liczby cyfr, które są obecne w liczbie.
Ie 1234567.89 ma precyzję 9
Skala liczbowa odnosi się do maksymalnej liczby miejsc dziesiętnych
Ie 123456.789 ma skalę 3
Zatem maksymalna dozwolona wartość dziesiętna(5,2) wynosi 999,99
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-27 16:03:19
Precyzja liczby to liczba cyfr.
Skala liczby to liczba cyfr po przecinku.
Przy ustawianiu precyzji i skali na definicji pola zakłada się, że reprezentują one maksymalne wartości.
Przykład, pole dziesiętne zdefiniowane przez precision=5
i scale=2
pozwoli na następujące wartości:
-
123.45
(p = 5, s=2) -
12.34
(p = 4, s=2) -
12345
(p = 5, s=0) -
123.4
(p = 4, s=1) -
0
(p=0, s=0)
Następujące wartości nie są dozwolone lub spowodowałyby utratę danych:
-
12.345
(p = 5, s=3) = > można skrócić do12.35
(P = 4, s=2) -
1234.56
(p = 6, s=2) = > można skrócić do1234.6
(P = 5, s=1) -
123.456
(P = 6, s=3) = > można skrócić do123.46
(P = 5, s=2) -
123450
(P = 6, s=0) = > poza zakresem
Należy zauważyć, że zakres jest ogólnie określony przez precyzję: |value| < 10^p
...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-20 10:14:32
Dokładność, Skala i długość w dokumentacji SQL Server 2000 brzmi:
Precyzja jest liczbą cyfr w liczbie. Skala to liczba cyfr po prawej stronie punktu dziesiętnego w liczbie. Na przykład liczba 123.45 ma dokładność 5 i skalę 2.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-16 18:56:08