Napísal som programy, v ktorých počítač požaduje plávajúce číslo č. Od používateľa. Napríklad, ak zadávam 0,41, výstup v printf je 0,409999999. Ako vyriešiť túto chybu?
odpovede:
1 pre odpoveď č. 1Je to jednoduché. použitie:
printf("%.2f", 0.409999999);
Týmto sa vytlačí 0,41
1 pre odpoveď č. 2
- % f (tlačiť ako pohyblivý bod)
- % 4f (tlačiť ako plávajúci bod so šírkou najmenej 4 šírky)
- % .4f (tlačiť ako pohyblivá čiarka s presnosťou na štyri znaky za desatinnou čiarkou)
- % 3.2f (tlačiť ako pohyblivú čiarku s šírkou najmenej 3 a presnosťou 2)
0 pre odpoveď č. 3
Väčšina údajových typov s pohyblivou rádovou čiarkou je podľa ichpríroda, nepresná. Snažia sa ukladať skutočné čísla (nekonečnú presnosť) do bit-vektora s obmedzenou presnosťou. Preto je možné, že najbližšie zastúpenie 0,41 na vašej platforme je 0,409999999.
Mali by ste si prečítať informácie o zobrazení s plávajúcou desatinnou čiarkou IEEE754, aby ste získali predstavu o tom, aký druh problému tam narazíte.