Java에서는 변수 앞에 double 데이터 유형을 사용하면 소수점 이하 15자리를 나타냅니다. 그러나 때로는 루피나 기타 단위를 표시하는 경우처럼 소수점 이하 두 자리만 필요로 하는 경우도 있습니다. 그래서 이번 섹션에서는 소수점 이하 두 자리까지 두 배로 표시하는 방법 적절한 예제와 Java 프로그램과 함께.
Java는 소수점 이하 2자리로 double을 표시하는 다음 세 가지 방법을 제공합니다.
- DecimalFormat('0.00') 사용
- String.format() 메서드 사용('%.2f')
- 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