Olisiko kellään kunnon ideaa miten saisi hyvin ilman ulkoisten luokkien käyttöä pyöristettyä tulos kahden desimaalin tarkkuuteen?
Koodausta ei tartte vaan idean esitys!
Koodausta ei tartte vaan idean esitys!
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
double luku = 1.434543;
int tmp = (int)(luku * 100);
luku = (double)tmp / 100; // 1.43
Tuo kyllä katkaisee desimaalit pois, mutta osaako se pyöristää oikein? En usko.
Sadalla kertomisen jälkeen on lisättävä 0.5.
Katso Math-luokan round-metodi. Math luokka ei ole java.math-paketissa, vaan java.lang-paketissa. Sitä ei siis tarvi importata.
Joudut tekemään näin:
double desimaaliluku = 12.3456789;
int kokonaisosa = (int) desimaaliluku;
int desimaaliosa = (int) (desimaaliluku * 100.0 - kokonaisosa * 100.0 + 0.5);
System.out.printf("%f pyöristettynä kahden desimaalin tarkkuuteen on %d.%d%n", desimaaliluku, kokonaisosa, desimaaliosa);
Esimerkiksi jos koodataan rahalaskuja, niissä ei pidä missään nimessä käyttää liukuluku-euroja vaan pitää käyttää kokonaisluku-euroja ja kokonaisluku-senttejä.