Java:
Numerojen pyöristäminen
Miten:
Java tarjoaa useita tapoja pyöristää numeroita. Tässä nopea demo Math.round()
, BigDecimal
ja DecimalFormat
käytöstä.
public class RoundingDemo {
public static void main(String[] args) {
double num = 123.4567;
// Käyttäen Math.round()
long roundedNum = Math.round(num);
System.out.println(roundedNum); // Tuloste: 123
// Käyttäen BigDecimalia lisäkontrolliin
BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP);
double roundedBigDecimal = bd.doubleValue();
System.out.println(roundedBigDecimal); // Tuloste: 123.46
// Käyttäen DecimalFormatia
DecimalFormat df = new DecimalFormat("#.##");
String formattedNum = df.format(num);
System.out.println(formattedNum); // Tuloste: 123.46
}
}
Syväsukellus
Historiallisesti numeroiden pyöristäminen on ollut olennaista analogisille laskelmille ja on siirtynyt digitaaliseen laskentaan tehokkuuden ja tarkkuuden vuoksi. Pyöristysvirheet, kuten ne, jotka tulevat liukulukuaritmetiikasta, osoittavat, että tämä ei ole triviaali asia — ne voivat kumulatiivisesti sotkea laskelmia esimerkiksi ilmailu- ja rahoitussovelluksissa.
Math.round()
lisäksi sinulla on BigDecimal
, joka tarjoaa sinulle hienovaraisemman kontrollin skaalan ja pyöristystilan suhteen, ja DecimalFormat
silloin, kun tarvitset pyöristää numeroita osana tekstin muotoilua. Pyöristämisen vaihtoehtoihin kuuluvat lattiafunktio, kattofunktio ja katkaisu, jotka ovat erilaisia tapoja käsitellä tarkkuutta ja tyypillisesti käsitellään eri Math
menetelmillä.
Käyttötapauksestasi riippuen pyöristysstrategia saattaa vaihdella. Esimerkiksi BigDecimal
on go-to rahoituslaskelmissa, joissa tarkkuus on kriittistä. Sen sijaan Math.round()
on nopea tapa yleiskäyttöisiin toimenpiteisiin, joissa et ole niin tarkka pyöristystilasta.