Diskuze: Rozdíly float, real a decimal
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Rozdíl je v tom, kolik proměnné s daným datovým typem zabírají místa v paměti. A protože se jedná o typy s plovoucí desetinou čárkou, tak je rozdíl i v přesnosti. Nějaké rozsahy možných hodnot jsi už určitě našel na internetu. Obecně by jsi měl používat paměťově co nejméně náročné datové typy, jejichž přesnost ti ještě dostačuje.
Typ float má menší přesnost, výkon: rychlejší,
použití: vědecké výpočty, grafika, simulace.
Typ real jako float (někdy méně přesné), výkon:
rychlejší, použití SQL db, tam, kde je real k dispozici.
Typ decimal, vysoká přesnost (pevná desetinná místa),
výkon: pomalejší, použití: finanční a účetní výpočty, přesná
čísla).
Shrnula bych to takto: pokud potřebuješ přesnost a pracuješ s penězi nebo metrickými měřeními, zvol decimal. Pokud řešíš vědecké problémy nebo potřebuješ výkon, použij float.
Rozdíly v příkladech (python):
float/real:
x = 0.1 + 0.2 # Výsledek: 0.30000000000000004
# Důvod: Přesnost je omezená kvůli reprezentaci v binárním systému.
decimal:
from decimal import Decimal
x = Decimal('0.1') + Decimal('0.2') # Výsledek: 0.3
# Důvod: Používá desetinné číslo přesně reprezentované v desítkové
soustavě.
https://en.wikipedia.org/wiki/IEEE_754
a tady je hezky zobrazená mantisa a exponent
https://www.h-schmidt.net/…IEEE754.html
Zobrazeno 4 zpráv z 4.