22.수학 연산 과 관련 된 클래스

1.Math 클래스
수학 방법 류,속성 과 인 터 페 이 스 는 모두 정적 이기 때문에 정적 가 져 오 는 방식 으로 사용 할 수 있 습 니 다(static import).
예시:
package com.ares.mathdemo;
public class MathDemo {
	public static void main(String[] args) {
		System.out.println("PI = " + Math.PI);
		System.out.println(Math.max(1, 2));
		System.out.println(Math.round(89.9876));	//     
	}
}

2.랜 덤 클래스
일정한 범위 의 클래스 의 임 의 수 를 얻다.
예시:
package com.ares.randomdemo;
import java.util.Random;
public class RandomDemo {
	public static void main(String[] args) {
		Random r = new Random();
		for (int i = 0; i < 10; i++) {
			System.out.print(r.nextInt(100) + "、");
		}
	}
}

3.NumberFormat 클래스
NumberFormat 도 Format 류 의 세 가지 유형 중 하나 로 이 세 가지 유형 은 모두 국제 화 프로 그래 밍 과 관련 이 있다.
숫자 와 관련 된 사용자 정의 포맷 작업 을 수행 할 수 있 는 하위 클래스 DecimalFormat 이 있 습 니 다.
예시 1:
package com.ares.numberformatdemo;
import java.text.NumberFormat;
public class NumberFormatDemo {
	public static void main(String args[]) {
		int temp = 1000010000;
		NumberFormat num = NumberFormat.getInstance() ;
		System.out.println(num.format(temp));
	}
}

예시 2:
package com.ares.numberformatdemo;
import java.text.DecimalFormat;
class FormatDemo {
	public void format(String pattern, double value) { //           
		DecimalFormat format = new DecimalFormat(pattern); //        
		String str = format.format(value);//     
		System.out.println("      (" + pattern + ")      :" + str);
	}
}
public class DecimalFormatDemo {
	public static void main(String[] args) {
		FormatDemo format = new FormatDemo() ;
		format.format("000,000.000", 23456.45) ;
		format.format("###,###.###", 23456.45) ;
		format.format("000,000.000¥", 23456.45) ;
		format.format("###,###.###¥", 23456.45) ;
		format.format("##.###%", 0.34567) ;
		format.format("00.###%", 0.034567) ;
	}
}

4.대수 조작
큰 나무 조작 이란 데이터 가 매우 크 고 전체 데이터 형식의 저장 범 위 를 초과 할 정도 로 크다 는 것 을 말한다.자바 에서 이러한 문 제 를 해결 하기 위해 두 가지 유형 을 제공 하여 관련 작업 을 완성 했다.
4.1 BigInteger 클래스
큰 정형 수의 조작.
예시:
package com.ares.largenumberdemo;
import java.math.BigInteger;
public class BigIntegerDemo {
	public static void main(String[] args) {
		String num1 = "9999999999999999999999999999999999";
		String num2 = "9999999999999999999999999999999998";
		BigInteger big1 = new BigInteger(num1); //    BigInteger  
		BigInteger big2 = new BigInteger(num2); //    BigInteger  
		System.out.println("    :" + big1.add(big2));
		System.out.println("    :" + big1.subtract(big2));
		System.out.println("    :" + big1.multiply(big2));
		System.out.println("    :" + big1.divide(big2));
		BigInteger result[] = big1.divideAndRemainder(big2);//       ,   
		System.out.println("       :" + result[0]);
		System.out.println("        :" + result[1]);
	}
}

4.2 BigDecimal 클래스
큰 부동 소수점 처리.
예시:
package org.lxh.largenumberdemo;
import java.math.BigDecimal;
class MyMath {
	public static double add(String num1, String num2) {
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.add(bd2).doubleValue();
	}
	public static double sub(String num1, String num2) {
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.subtract(bd2).doubleValue();
	}
	public static double mul(String num1, String num2) {
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.multiply(bd2).doubleValue();
	}
	public static double div(String num1, String num2, int scale) {
		BigDecimal bd1 = new BigDecimal(num1);
		BigDecimal bd2 = new BigDecimal(num2);
		return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	public static double round(double num, int scale) {
		BigDecimal bd1 = new BigDecimal(num);
		BigDecimal bd2 = new BigDecimal(1);
		return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
}
public class BigDecimalDemo {
	public static void main(String[] args) {
		String num1 = "12345.07891";
		String num2 = "3333.5101";
		System.out.println("    :" + MyMath.round(MyMath.add(num1, num2), 2));
		System.out.println("    :" + MyMath.round(MyMath.sub(num1, num2), 2));
		System.out.println("    :" + MyMath.round(MyMath.mul(num1, num2), 2));
		System.out.println("    :" + (MyMath.div(num1, num2, 2)));
	}
}

20150428
JAVA 학습 노트 시리즈
--------------------------------------------
                    연락처
--------------------------------------------
        Weibo: ARESXIONG
        E-Mail: [email protected]
------------------------------------------------

좋은 웹페이지 즐겨찾기