java BigDecimal 천 자리 구분자 추가,몇 자리 소수 유지

3956 단어 자바
형식 을 포함 하 는 것 은 모두 String 클래스 입 니 다.예 를 들 어 천 자리 구분자 가 추 가 된 것 은 백분 수 형식 으로 변 환 됩 니 다.
1.DecimalFormat 클래스 를 사용 하면 String 형식 으로 돌아 갑 니 다.
반올림 모드 참조 DecimalFormat 의 수치 포맷 에 대한 반올림 문제-Rounding Mode
import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest {

	/** 
	 *   DecimalFormat      String  
	 */
	@Test
	public void BigDecimalFormatTest() {
         	
		//0      ; #     ,    0 
		//      ,               
		DecimalFormat df1 = new DecimalFormat("###0.00") ;  
		df1.setRoundingMode(RoundingMode.HALF_UP); 
		System.out.println(df1.format(124.3));  
		System.out.println(df1.format(124.315));  //          
		System.out.println(df1.format(124.325));  //          
 	          
		 //      ,          
		DecimalFormat df2 = new DecimalFormat("###0.##") ;
		System.out.println(df2.format(124.6));  
		System.out.println(df2.format(124));  
		
		//      ,        
 		DecimalFormat df3 = new DecimalFormat("000.00"); 
		System.out.println(df3.format(24));
		
		//       ,  3   ,    0
		DecimalFormat df4 = new DecimalFormat("#,##0.000");
		System.out.println(df4.format(new BigDecimal(3613.61)));
		System.out.println(df4.format(new BigDecimal(3613.613)));
		System.out.println(df4.format(new BigDecimal(3613.6135)));
		System.out.println(df4.format(new BigDecimal(3613.6136)));
 
		}

}

2.BigDecimal.setScale()방법 을 사용 하면 BigDecimal 형식 으로 되 돌아 가지 만 String 형식 으로 다시 전환 할 수 있 습 니 다.
import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest {

 
	/**
	 *   BigDecimal setScale()  
	 * 
	 */
	@Test
	   public void setBigDecimalScale(){
		 
	        BigDecimal bd1 = new BigDecimal( 911.911);
	        BigDecimal bd2 = new BigDecimal( 911.91156);
	        bd1 = bd1.setScale(4, BigDecimal.ROUND_HALF_UP);
	        bd2 = bd2.setScale(4, BigDecimal.ROUND_HALF_UP);
	        
	        System.out.println("bd1=="+bd1);
	        System.out.println("bd2=="+bd2);
	        
           //  String       0
	        String str1 = bd1.setScale(4, BigDecimal.ROUND_HALF_UP).toString();
	        System.out.println("str1==="+str1);
	        //  String        0
	        String str2 = new String(""+bd1.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
	        System.out.println("str1==="+str2);

 	   }
	
}

3.BigDecimal 과 백분율 형식 상호 전환 참고 자바 백분율,BigDecimal 소수 상호 전환
import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest{

	@Test
	public void percentTest(){	
		//BigDecimal        
		DecimalFormat df = new DecimalFormat("0.00%");  
		BigDecimal d=new BigDecimal(0.666);
		String percent=df.format(d);
		System.out.println("percent=="+percent);
		
		//       BigDecimal 
		percent=percent.replace("%","");
		Float f = Float.valueOf(percent) / 100;
		BigDecimal decimal = new BigDecimal(f);
		System.out.println(decimal);//-0.66600000858306884765625
	}
	
}

4.두 개의 BigDecimal 비교 크기 는 compare To()방법 으로 비교 한 결과-1,0,1 이 있 는데 각각 작 음,같 음,크 음 을 나타 낸다.
import static org.junit.Assert.*;

import java.math.BigDecimal;

import org.junit.Test;

public class BigDecimalTest {

	@Test
	  public void testEqual(){
		  BigDecimal value1 = new BigDecimal(3.14);
		  BigDecimal value2 = new BigDecimal(3.20);
		  if(value1.compareTo(value2) == 0){
			  System.out.println("value1 = value2");
		  }
		  if(value1.compareTo(value2) == 1){
			  System.out.println("value1 > value2");
		  }
		  if(value1.compareTo(value2) == -1){
			  System.out.println("value1 < value2");
		  }
		  
	  }
	
}

좋은 웹페이지 즐겨찾기