Czasami mylą mnie typy danych Activerecord. Err, często. Jednym z moich wiecznych pytań jest, w danym przypadku,
Czy powinienem użyć
:decimallub:float?
Często natrafiam na ten link, ActiveRecord:: dziesiętny vs: zmiennoprzecinkowy? , ale odpowiedzi nie są wystarczająco jasne, aby mieć pewność:
Widziałem wiele wątków, w których ludzie zalecają płaskie, aby nigdy nie używali liczb zmiennoprzecinkowych i zawsze używali liczb dziesiętnych. Widziałem także sugestie niektórych osób, aby używać pływaka tylko do zastosowań naukowych.
Oto kilka przykładowych przypadków:
- Geolokalizacja / szerokość / długość geograficzna:
-45.756688,120.5777777... - Stosunek / odsetek:
0.9,1.25,1.333,1.4143, ...
Używałem :decimalw przeszłości, ale okazało się, że radzenie sobie z BigDecimalobiektami w Ruby było niepotrzebnie niewygodne w porównaniu do float. Wiem też, że mogę :integerna przykład przedstawiać pieniądze / centy, ale to nie pasuje do innych przypadków, na przykład gdy ilości, w których precyzja może się zmieniać w czasie.
- Jakie są zalety / wady korzystania z nich?
- Jakie byłyby pewne dobre zasady, aby wiedzieć, jakiego rodzaju użyć?