pamiętaj, że float
jest wadliwym typem danych, jeśli chodzi o precyzję. Jeśli reprezentujesz 12
jako float otrzymasz 11.99999999999998
czy coś.
'38.03'
można przekonwertować na dziesiętny lub inny typ danych, który jest bardziej precyzyjny (w zależności od RDBMS, jestem tutaj ogólny) i będzie się różnić od wartości zmiennoprzecinkowej.
float to 32 bity, niska precyzja. Double działa o wiele lepiej, będąc 64-bitowym typem danych. Typ danych dziesiętnych w niektórych systemach to 128-bitowe typy danych numerycznych do przechowywania bardzo precyzyjnych wartości liczbowych i są zwykle używane do denominacji pieniędzy.
I pomiń zwyczaj porównywania za pomocą =
operator float
wartości. Liczby zmiennoprzecinkowe są używane do przybliżonych i szybkich obliczeń, a tylko porównanie z zakresem jest dopuszczalne do sprawdzenia wartości float
. Dotyczy to w zasadzie każdego pojedynczego systemu.