Cześć,
W jednym ze streamów @Gynvael Coldwind wspominał o jakiejś wadzie MySQL - chyba związanej z zaokrąglaniami liczb lub z liczbami zmiennoprzecinkowymi (?). Niestety nie pamiętam w którym to było streamie i co to dokładnie było. Czy kojarzycie może co to mogło być? Wiem, że wtedy to miało dla mnie znaczenie i w konsekwencji przestałem się interesować tą bazą danych.
z liczbami zmiennoprzecinkowymi zawsze jest problem, tak w językach jak w i w bazach, dlatego najlepiej zapisywać je jako stałe i samemu przesuwać przecinek jeśli ma to być precyzyjne np dla pieniędzy.
@mr_jaro tak, zgadzam się i problem jest mi znany. Próbuję sobie jednak przypomnieć o czym mówił kiedyś @Gynvael Coldwind i w cale nie jestem pewny, że to chodziło o liczby zmiennoprzecinkowe (to tylko przypuszczenie) :(
mr_jaro napisał(a):
z liczbami zmiennoprzecinkowymi zawsze jest problem, tak w językach jak w i w bazach, dlatego najlepiej zapisywać je jako stałe i samemu przesuwać przecinek jeśli ma to być precyzyjne np dla pieniędzy.
Od tego jest typ DECIMAL
To nie jest problem tylko MySQL tylko generalnie tego w jaki sposób komputer operuje liczbami, to samo masz np. w SQL Server:
https://www.catapultsystems.com/blogs/float-vs-decimal-data-types-in-sql-server/
https://blog.greglow.com/2018/01/15/sql-newbie-mistake-1-using-float-instead-decimal/
MySQL ma inne wady - np. sposób działania jego optymizera SQL, albo np. system transakcyjny InnoDB lubi w idiotycznych sytuacjach robić deadlocki, gdzie inne bazy danych dają sobie radę. MySQL jest dobry do prostych systemów / nieskomplikowanych struktur.