/ / Ako zaokrúhliť plávajúce číslo č. Na dve desatinné miesta? - c

Ako zaokrúhliť plávajúcu čiaru č. Na dve desatinné miesta? - c

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ď č. 1

Je 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.