Moja liczba zmiennoprzecinkowa ma dodatkowe cyfry podczas drukowania
Definiuję liczbę zmiennoprzecinkową jakofloat transparency = 0.85f;
W następnym wierszu przekazuję go do funkcji -fcn_name(transparency)
- ale okazuje się, że zmiennatransparency
ma wartość0.850000002
, a kiedy go wydrukuję z ustawieniem domyślnym, to jest0.850000002
. Dla wartości0.65f
, to jest0.649999998
.
Jak mogę uniknąć tego problemu? Wiem, że zmiennoprzecinkowe jest tylko przybliżeniem, ale jeśli zdefiniuję zmiennoprzecinkowy z kilkoma miejscami po przecinku, jak mogę się upewnić, że nie zostanie zmieniony?