Diskuze: Zaokrouhlování
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Co toto?
x = round(x*10000) / 10000;
Trik je v tom, že tebou požadovaná desetinná místa se stanou součástí celé části čísla, takže funkce round vlastně ovlivní pouze čtvrté des. místo v závislosti na pátém (které je po vynásobení 10000 vlastně první). Po zaokrouhlení vydělíš 10000, abys desetinná místa vrátil tam, kam patří.
Vzhledem k interní reprezentaci double a spol (IEEE 754) se pořád můžeš dostat do problémů se zaokrouhlováním, ale to proto, že tebou požadované číslo nelze interně reprezentovat přesně. Bohužel, taková běžná čísla jako 0.2 prostě ve dvojkové soustavě nezapíšeš, ledaže bys měl nekonečně velký papír.
Tak nakonec jsem použil funkci setprecision ()
vložil jsem funkci hned pod vstup uživatele cout << setprecision (4) <<fixed;
A šlape to jak má.
Zobrazeno 3 zpráv z 3.