Java에서 Double 자르기
-
DecimalFormat
을 사용하여 Java에서 Double 자르기 -
BigDecimal
을 사용하여 Java에서 Double 자르기 - Apache 공용 라이브러리를 사용하여 Java에서 10 진수 자르기
-
java.lang.Math
를 사용하여 Java에서 10 진수 자르기
이 기사에서는 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn