Java에서 BigDecimal 클래스의 간단한 사용 방법

2934 단어 JavaBigDecimal
본고는 자바에서 Big Decimal류의 간단한 사용법을 실례로 서술하고 자바 프로그램 디자인에서 매우 실용적인 기교로 여러분에게 참고할 수 있도록 공유합니다.구체적인 용법 분석은 다음과 같다.
일반적으로 자바 안의 상업 계산을 언급하면, 우리는 플로트와 더블을 사용할 수 없다는 것을 안다. 왜냐하면 그들은 정확한 계산을 할 수 없기 때문이다.그러나 자바의 디자이너는 프로그래머에게 매우 유용한 클래스인 Big Decimal을 제공했다. 그는 플로트와 더블 클래스가 정확한 계산을 할 수 없는 결함을 보완할 수 있다.BigDecimal 클래스는java에 있습니다.maths 클래스 패키지.우선 Big Decimal 객체를 구성하는 방법을 살펴보겠습니다.그것의 구조 함수는 매우 많은데, 여기서 가장 자주 사용하는 두 가지를 골라 보여 준다. 하나는 Big Decimal (double val) 이고, 다른 하나는 Big Decimal (String str) 이다.이 두 가지는 크게 다르지 않아 보이지만 API 설명과 같습니다.

/*The results of this constructor can be somewhat unpredictable. One might assume that 
new BigDecimal(.1) is exactly equal to .1, but it is actually equal 
to .1000000000000000055511151231257827021181583404541015625. This is so because .1 
cannot be represented exactly as a double (or, for that matter, as a binary fraction 
of any finite length). Thus, the long value that is being passed in to the constructor 
is not exactly equal to .1, appearances nonwithstanding.
The (String) constructor, on the other hand, is perfectly predictable: new BigDecimal
(".1") is exactly equal to .1, as one would expect. Therefore, it is generally 
recommended that the (String) constructor be used in preference to this one.*/

즉, 더블을 매개 변수로 하는 구조 함수를 이용하여 BigDecimal 대상을 정확하게 구성할 수 없기 때문에 상하문의 환경, 즉 정확한 위치를 지정해야 한다.String 객체를 매개 변수로 전달하는 구조 함수를 이용하여 BigDecimal 객체를 정확하게 구성할 수 있습니다.다음 코드를 참조하십시오.

import java.math.*;
public class TestBigDecimal {
  public static void main(String args[]){
    BigDecimal bd = new BigDecimal("10.123");
    BigDecimal bd1 = new BigDecimal(10.123);
    System.out.println(bd +"/n"+ bd1);
  }
}

실행 후 출력:
10.123
10.1229999999999993320898283855058252811431884765625
그래서 우리는 구조 함수를 선택할 때 구체적인 수요를 보고 결정해야 한다.
또한 int,float,double,long, Big Decimal 대상과 어떻게 기본 유형을 바꾸는지 묻는 사람들이 많다.간단합니다.
기본 유형은 구조 함수를 통해 대응하는 BigDecimal 대상으로 변환되고, BigDecimal 클래스는 intValue (), floatValue (), doubleValue (), longValue () 방법과 같이 BigDecimal 대상을 대응하는 값으로 변환합니다.
Big Decimal이 어떻게 계산되는지에 대해 저는 포럼에서 한 사람의 질문 댓글을 예로 삼아 Big Decimal의 연산 방법을 간단하게 작성합니다.제목은 이백무사거리를 걷고 주전자를 들고 술을 사러 간다.가게를 만나면 배가 되고, 꽃을 보면 한 말을 마시고, 다섯 개를 만나면 꽃과 가게를 만나고, 주전자에 담긴 술을 다 마시고, 이백주전자의 중원에 몇 말의 술이 있는지 물어본다.
이 문제는 뒤에서 앞으로 밀고 역연산해서 원래 있던 술의 부피를 얻어내야 한다.

import java.math.*;
public class Libai {
  public static void main(String args[]){
    BigDecimal volumn = new BigDecimal("0");
    for (int i=0; i<5; i++){      
      volumn = volumn.add(new BigDecimal("1"));
      volumn = volumn.divide(new BigDecimal("2"));
    }
    System.out.print(volumn);
  }
}

실행 결과:
0.96875
본 논문이 여러분의 Java 프로그래밍 학습에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기