Numerojen pyöristäminen

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.

Katso myös