Java:
Avrundning av tal
Hur man gör:
Java erbjuder flera sätt att avrunda tal. Här är en snabb demo med Math.round()
, BigDecimal
, och DecimalFormat
.
public class RoundingDemo {
public static void main(String[] args) {
double num = 123.4567;
// Använda Math.round()
long roundedNum = Math.round(num);
System.out.println(roundedNum); // Utdata: 123
// Använda BigDecimal för mer kontroll
BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP);
double roundedBigDecimal = bd.doubleValue();
System.out.println(roundedBigDecimal); // Utdata: 123.46
// Använda DecimalFormat
DecimalFormat df = new DecimalFormat("#.##");
String formattedNum = df.format(num);
System.out.println(formattedNum); // Utdata: 123.46
}
}
Fördjupning
Historiskt sett har avrundning av tal varit avgörande för analog beräkning och har följt med till digital databehandling för effektivitet och noggrannhet. Avrundningsfel, som de från flyttalsaritmetik, visar att detta inte är en trivial fråga - de kan ackumuleras och ställa till med beräkningar inom till exempel flyg- och finansapplikationer.
Bortom Math.round()
, har du BigDecimal
, som ger dig finare kontroll över skalan och avrundningsläget, och DecimalFormat
när du behöver avrunda tal som en del av formatering av textutdata. Alternativ till avrundning inkluderar avkapning, avrundning uppåt och nedåt, som är olika sätt att hantera precision och hanteras typiskt av olika Math
-metoder.
Beroende på ditt användningsfall kan avrundningsstrategin variera. Till exempel är BigDecimal
att föredra för finansiella beräkningar, där precision är avgörande. I kontrast är Math.round()
ett snabbt sätt för allmänna operationer där du är mindre petig med avrundningsläget.