Javában hogyan tudom megoldani a jelenlegi forintra kerekítést?
Naszóval, először is meg kéne szülni az összeg utolsó számjegyét. Ez hála Istennek, rém egyszerű: elosztod 10-zel és megnézed, mennyi a maradék.
int osszeg = 25364;
int utolsoSzamjegy = osszeg % 10; //=4
Mellesleg nem át kezdésnek lekerekíteni a számot:
int lekerekitett = osszeg / 10 * 10;
Jogos a kérdés, hogy mi értelme van osztani és szorozni is 10-zel, mivel az elvileg ugyanannyi. Hát, int típusú adatnál nem. Ha osztok egy int típusú értéket 10-zel, például a 25364-et, nem azt fogom kapni, hogy 2536,4, hanem azt, hogy 2536. Ha ezt felszorzom 10-zel, akkor pedig 25360-at kapok. Poén, mi? Lehetne használni rá beépített függvényt is, de szerintem kezdőként nem árt, ha agyalsz egy kicsit a problémán.
És itt jön az, hogy hogyan kerekítsünk:
- Ha az utolsoSzamjegy <= 2, akkor az eredmény a lekerekitett lesz
- Ha az utolsoSzamjegy 3 és 7 között van, akkor az eredmény a lekerekitett+5 lesz
- Ha az utolsoSzamjegy >=8, akkor az eredmény a lekerekitett+10 lesz
Vagy egy iszonyat egyszerű megoldás:
(összeg + 2) / 5 * 5;
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!