Sobes.tech
Junior — Middle

Használható-e a double adattípus magas pontosságú értékek tárolására?

sobes.tech MI

Válasz az MI-től

A Java double adattípus kettős pontosságú lebegőpontos számot képvisel, és alkalmas tizedes részt tartalmazó számok tárolására. Azonban nem garantálja a magas pontosságot a tizedes törtek kezelésében a lebegőpontos számok bináris ábrázolásának sajátosságai miatt. Ez kerekítési hibákhoz vezethet, amelyek kritikusak lehetnek pénzügyi vagy más precíz számításoknál.

Magas pontosságú értékek tárolásához, különösen pénzügyi alkalmazásokban, jobb a BigDecimal osztály használata, amely pontos tizedes számokat és műveleteket biztosít pontvesztés nélkül.

A BigDecimal használatának példája:

import java.math.BigDecimal;

public class PrecisionExample {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("0.1");
        BigDecimal b = new BigDecimal("0.2");
        BigDecimal sum = a.add(b);
        System.out.println("Összeg: " + sum); // Pontosan 0.3-at ír ki
    }
}