logo

소수점 두자리 자바

Java에서는 변수 앞에 double 데이터 유형을 사용하면 소수점 이하 15자리를 나타냅니다. 그러나 때로는 루피나 기타 단위를 표시하는 경우처럼 소수점 이하 두 자리만 필요로 하는 경우도 있습니다. 그래서 이번 섹션에서는 소수점 이하 두 자리까지 두 배로 표시하는 방법 적절한 예제와 Java 프로그램과 함께.

소수점 두자리 자바

Java는 소수점 이하 2자리로 double을 표시하는 다음 세 가지 방법을 제공합니다.

  1. DecimalFormat('0.00') 사용
  2. String.format() 메서드 사용('%.2f')
  3. BigDecimal 사용

위의 방법들을 하나씩 논의해보자.

DecimalFormat 사용

자바 십진수 형식 십진수 형식을 지정하는 데 사용되는 NumberFormat 클래스의 구체적인 하위 클래스입니다. 수업은 setRoundingMode() 소수점 이하 두 자리까지 두 배의 숫자를 표시하는 방법입니다.

통사론:

 public void setRoundingMode(RoundingMode roundingMode) 

반올림 모드를 매개변수로 허용하고 setRoundingMode() 메서드를 재정의합니다. 숫자형식 수업. 그것은 던진다 NullPointer예외 roundingMode를 지정하지 않은 경우. 다음 표에서는 다양한 반올림 모드에 대해 설명합니다.

번호 입력 위로 아래에 천장 바닥 HALF_UP HALF_DOWN HALF_EVEN 불필요한
5.5 6 5 6 5 6 5 6 ArithmeticException 발생
2.5 2 2 2 2 ArithmeticException 발생
1.6 2 1 2 1 2 2 2 ArithmeticException 발생
1.1 2 1 2 1 1 1 1 ArithmeticException 발생
1.0 1 1 1 1 1 1 1 1
-1.0 -1 -1 -1 -1 -1 -1 -1 -1
-1.1 -2 -1 -1 -2 -1 -1 -1 ArithmeticException 발생
-1.6 -2 -1 -1 -2 -2 -2 -2 ArithmeticException 발생
-2.5 -삼 -2 -2 -삼 -삼 -2 -2 ArithmeticException 발생
-5.5 -6 -5 -5 -6 -6 -5 -6 ArithmeticException 발생

우리는 DecimalFormat 클래스의 또 다른 메소드를 사용했습니다. 체재() 방법. 문자열을 생성하기 위해 문자열 형식을 지정합니다.

통사론:

하위 문자열 문자열 자바
 public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) 

이 메소드는 number, result 및 position의 세 가지 매개변수를 허용합니다. 그러나 마지막 두 매개변수는 선택사항입니다. 형식화된 숫자 문자열을 반환합니다. 메소드는 던진다 산술 예외 만약에 반올림 모드 로 설정되어 있습니다 불필요한.

TwoDecimalPlace1.java

 import java.math.RoundingMode; import java.text.DecimalFormat; public class TwoDecimalPlace1 { //constructor of the DecimalFormat class private static final DecimalFormat decfor = new DecimalFormat('0.00'); public static void main(String args[]) { //defining a number of type double double num = 123.9876543567; System.out.println('Double Number: ' + num); System.out.println('Double Number: ' + decfor.format(num)); //123.99 //DecimalFormat, default is RoundingMode.HALF_EVEN decfor.setRoundingMode(RoundingMode.DOWN); System.out.println('
Before Rounding: ' + decfor.format(num)); //123.98 decfor.setRoundingMode(RoundingMode.UP); System.out.println('After Rounding Up: ' + decfor.format(num)); //123.99 } } 

산출:

 Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99 

String.format() 메서드 사용

Java는 숫자 형식을 지정하는 format() 메서드도 제공합니다. String 클래스에 속합니다. 이 방법을 사용하면 그에 따라 숫자와 문자열의 형식을 지정할 수 있습니다.

Ravel은 파이썬에서 무엇을 하나요?

소수점 이하 두 자리까지 숫자를 변경하려면 다음을 사용합니다. %.2f 숫자 형식을 지정합니다. String.format() 메서드에서는 숫자를 반올림할 수 없으며 항상 반올림됩니다.

통사론:

 public static String format(String format, Object... args) 

이 메서드는 다음 두 매개변수를 허용합니다.

체재: 우리가 원하는 형식화된 문자열입니다.

인수: 이는 형식 문자열의 형식 지정자가 참조하는 인수입니다.

형식화된 문자열을 반환합니다. 그것은 던진다 불법형식예외 형식 문자열에 잘못된 구문이 포함된 경우. 그것도 던진다 NullPointer예외 형식을 null로 지정하면

TwoDecimalPlace2.java

 public class TwoDecimalPlace2 { public static void main(String args[]) { //defining a number of type double double num = 10.98765432167; System.out.println('Double Number: ' + num); //use either of the following two statements for two decimal places both gives the same result System.out.println('Double Number: ' + String.format('%.2f', num)); System.out.format('Double Number: %.2f', num); } } 

산출:

 Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99 

BigDecimal 사용

소수점 이하 두 자리까지 숫자를 표시하기 위해 Java BigDecimal 클래스를 사용할 수도 있습니다. 에 속한다 java.math.BigDecimal 패키지. Number 클래스를 확장하고 다음을 구현합니다. 유사한 상호 작용.

클래스는 setScale() 메서드를 제공합니다. 구문은 다음과 같습니다.

통사론:

 setScale(int newScale, RoundingMode roundingMode) 

이 메서드는 두 가지 매개변수를 허용합니다.

새로운규모: 반환될 BigDecimal 값의 소수 자릿수입니다.

반올림 모드: 적용하려는 반올림 모드입니다.

소수 자리가 지정된 값이고 소수 자릿수가 없는 값은 전체 값을 유지하기 위해 이 BigDecimal의 소수 자릿수가 없는 값에 적절한 10의 거듭제곱을 곱하거나 나누어 결정되는 BigDecimal을 반환합니다.

메소드는 산술 예외 만약에 반올림 모드 로 설정되어 있습니다 불필요한 . RoundingMode는 위에서 설명한 RoundingMode를 제공하는 열거형입니다.

벨포드 알고리즘

이 프로그램에서 사용한 또 다른 방법은 다음과 같습니다. BigDecimal.doubleValue(). BigDecimal을 다음으로 변환합니다. 더블 숫자. 예를 살펴보겠습니다.

TwoDecimalPlace3.java

 import java.math.BigDecimal; import java.math.RoundingMode; public class TwoDecimalPlace3 { public static void main(String args[]) { //defining a number of type double double num = 12.4565652239; System.out.println('Double Number: ' + num); BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP); double newNum = bd.doubleValue(); System.out.println('Up to two decimal places: ' + newNum); } } 

산출:

 Double Number: 12.4565652239 Up to two decimal places: 12.46