Java에서 Double 자르기

Rupam Yadav 2023년10월12일
  1. DecimalFormat을 사용하여 Java에서 Double 자르기
  2. BigDecimal을 사용하여 Java에서 Double 자르기
  3. Apache 공용 라이브러리를 사용하여 Java에서 10 진수 자르기
  4. java.lang.Math를 사용하여 Java에서 10 진수 자르기
Java에서 Double 자르기

이 기사에서는 Java에서 소수점 이하 n 자리로 숫자를 자르거나 반올림하는 방법을 살펴 보겠습니다. Java는 double 및 float 인 10 진수 값을 저장하기 위해 두 가지 기본 유형을 제공합니다. 정확한 값이나 반올림을 위해BigDecimal클래스를 사용하는 것이 좋습니다.

DecimalFormat을 사용하여 Java에서 Double 자르기

DecimalFormat은 제공된 형식화 패턴을 사용하여 십진수 형식을 지정할 수있는NumberFormat의 하위 클래스입니다. 아래 코드에서 우리는 적절한 포맷 패턴을 전달하는DecimalFormat 객체를 생성했습니다. decimatFormat 객체에서format()메서드를 호출하고 이중 변수d를 매개 변수로 전달할 수 있습니다.

format()메소드는 출력에 표시된대로 잘린 문자열을 리턴합니다.

import java.text.DecimalFormat;
public class DecimalFormatting {
  public static void main(String args[]) {
    double d = 9.4568982982989;
    String pattern = "#.###";
    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    String formattedDouble = decimalFormat.format(d);
    System.out.println("Formatted double d = " + formattedDouble);
  }
}

출력:

Formatted double d = 9.457

BigDecimal을 사용하여 Java에서 Double 자르기

Java에서BigDecimal은 변경 불가능한 임의 정밀도의 부호있는 십진수입니다. 규모와 정밀도를 제어 할 수 있습니다. 이중 변환을 문자열로 전달하는BigDecimal객체를 생성하여 근사값을 나타내는 문제를 방지합니다.

그런 다음이BigDecimal객체bd에서setScale(int newScale, RoundingMode roundingMode)메소드를 호출합니다.이 메소드는 두 개의 인수를 사용합니다. 반환 할 BigDecimal의 스케일과 적용 할 반올림 모드입니다. 모드RoundingMode.FLOOR는 음의 무한대로 반올림됩니다.

public class DecimalFormatting {
  public static void main(String args[]) {
    double d = 9.4568982982989;
    BigDecimal bd = new BigDecimal(String.valueOf(d));
    BigDecimal rounded = bd.setScale(2, RoundingMode.FLOOR);
    System.out.println("BigDecimal rounded off : " + rounded);
  }
}

출력:

BigDecimal rounded off : 9.45

Apache 공용 라이브러리를 사용하여 Java에서 10 진수 자르기

우리는 maven 의존성이 아래에 주어진이 라이브러리에서 똑같은 것을 얻을 수 있습니다.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math3</artifactId>
    <version>3.5</version>
</dependency>

이 라이브러리의Precision.round()메소드를 사용하여 10 진수 형식을 지정할 수 있습니다. 이 메소드는 두 개의 인수, 하나는 형식화 및 스케일링 할 십진 변수를 취합니다. 소수점 뒤에 4 자리 숫자가 필요합니다. 따라서 그것이 우리가 필요로하는 규모입니다. 출력은 10 진수의 숫자가 잘 렸음을 보여줍니다.

import org.apache.commons.math3.util.Precision;
public class DecimalFormatting {
  public static void main(String args[]) {
    double d = 9.4568982982989;
    double doubleP = Precision.round(d, 4);
    System.out.println("Precision rounded off : " + doubleP);
  }
}

출력:

Precision rounded off : 9.4569

java.lang.Math를 사용하여 Java에서 10 진수 자르기

이것은 Java에서 십진수를 반올림하는 또 다른 방법입니다. Math.pow()메소드는 10n을 곱하고 나눔으로써n소수 자릿수를 제어합니다. 두 개의 인수, 밑이 10과 거듭 제곱 3 인이 방법을 사용하여 이중 변수scale을 만듭니다.

Java의Math.round()는 숫자를 가장 가까운 정수로 반올림하는 데 사용됩니다. 이것은 숫자에 1/2을 더하고 결과의 바닥을 말하고 결과를 정수 데이터 유형으로 캐스팅하여 수행됩니다. 이 방법은 때때로 값을 잘못 자르기 때문에 권장되지 않습니다.

public class DecimalFormatting {
  public static void main(String args[]) {
    double d = 9.4568982982989;
    double scale = Math.pow(10, 3);
    double doubleM1 = Math.round(d * scale) / scale;
    System.out.println("Math1 Rounded off: " + doubleM1);
  }
}

출력:

Math Rounded off: 9.45
Math1 Rounded off: 9.457
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Double