![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 194 Pomógł: 26 Dołączył: 9.01.2011 Skąd: /dev/null Ostrzeżenie: (0%) ![]() ![]() |
Borykam się z pewną dziwną kwestią... Wyliczam sobie wartość faktury, która w tym konkretnym przypadku wynosi 578.2815. Następnie robię update tabeli w celu zapisania tej wartości, podglądam phpMyAdminem i okazuje się, że do bazy wpisał 578.281, czyli bezczelnie zeżarł mi ostatnią cyfrę. Niby drobiazg, ale w skali roku przez to mogą wynikać spore nieścisłości w statystykach. O co tu chodzi?
EDIT: przestawiłem typ pola na real i jest ok. Niemniej jednak zastanawiające zachowanie MySQLa :] Ten post edytował ylk 8.03.2011, 12:40:00 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie zastanawiające, tylko w pełni normalne - taka jest natura typów zmiennoprzecinkowych. Typy te mają to do siebie, że nie można polegać na ich dokładnej wartości dziesiętnej ponieważ nie ma gwarancji, że będzie ona w ogóle poprawna.
W przypadku takich operacji w MySQL powinieneś użyć typu DECIMAL. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:39 |