C++ błędne wyświetlanie liczbe.

0

Witam.

Mam taki problem. Wczytuje do dwóch zmiennych typu float następujące liczby: 8.22 i 2.88.
Jednak gdy chce je wyświetlić na ekranie z precyzją do 10 miejsc po przecinku
( cout.precision() ) to otrzymuje coś takiego:

8.220000267
2.8800001144

Wie ktoś może czym takie przekłamanie jest spowodowane i ewentualnie w jaki sposób można się go pozbyć ?

0

To są okresowe ułamki binarne, stąd takie przekłamania. Tak jak w systemie dziesiętnym nie da rady zapisać 1/3, bo zawsze będzie to jakieś 0.3333333334 tak samo nie da rady tych liczb zapisać binarnie.

0

Czyli nie ma na to żadnego rozwiązania i musi tak zostać ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1