Odpowiedzi:
DECIMAL(18,0) pozwoli 0 cyfr po przecinku.
Użyj czegoś takiego, DECIMAL(18,4)co powinno wystarczyć!
To daje w sumie 18 cyfr , z czego 4 po przecinku (i 14 przed przecinkiem).
decimal(4,2)dopuszcza 2 cyfry przed i 2 cyfry po przecinku. „4.5” można zapisać bez problemu - i liczbowo „4.5” i „4.50” są identyczne
varchardo przechowywania wartości dziesiętnej !!
Powinieneś użyć w następujący sposób:
DECIMAL(m,a)
m to liczba cyfr, które może zawierać dziesiętny.
a to maksymalna liczba cyfr, jaką możesz mieć po przecinku.
http://www.tsqltutorials.com/datatypes.php zawiera opisy wszystkich typów danych.
Ustawieniami Decimalsą jego dokładność i skala lub w normalnym języku, ile cyfr może mieć liczba i ile cyfr chcesz mieć po prawej stronie przecinka dziesiętnego.
Więc jeśli umieścisz PIw Decimal(18,0)będzie rejestrowane jako 3?
Jeśli umieścisz PIw Decimal(18,2)będzie rejestrowane jako 3.14?
Jeśli położy PIsię Decimal(18,10)być rejestrowane jako 3.1415926535.
Przez większość czasu używam dziesiętnych (9,2), które zajmują najmniej miejsca (5 bajtów) w formacie dziesiętnym sql.
Precyzja => Bajty pamięci
Może przechowywać od 0 do 9 999 999,99 (7 cyfr w przód + 2 cyfry za przecinkiem = ogółem 9 cyfr), co jest wystarczająco duże dla większości wartości.
W MySQL DB decimal(4,2)pozwala na wprowadzenie tylko 4 cyfr. Jak widzisz decimal(4,2), oznacza to, że możesz wprowadzić łącznie 4 cyfry, z których dwie cyfry mają być przechowywane po przecinku.
Tak więc, jeśli wpiszesz 100.0 w bazie danych MySQL, wyświetli się błąd typu „Wartość poza zakresem dla kolumny”.
Możesz więc wpisać tylko w tym zakresie: od 00.00 do 99,99.
Pozostałe odpowiedzi są prawidłowe. Zakładając, że twoje przykłady odzwierciedlają pełen zakres możliwości, czego potrzebujesz DECIMAL(3, 1). Lub DECIMAL(14, 1)pozwoli w sumie 14 cyfr. Twoim zadaniem jest zastanowienie się, co wystarczy.