數學相關類:
3.1 Math
定義與數學函數相關的類
Math.random() 產生[0,1)之間的隨機小數
pow(a,b)
sqrt()
cbrt()
3.2 DecimalFormat
對數字格式化
# 0 , .
3.3 Random
產生隨機數
3.4 BigInteger/BigDecimal
當精度要求非常高時,使用兩個類
科學計算/財務計算
package com.bjpowernode.demo03;
/**
* Math類
* 主要定義了與數學函數相關的類
* @author Administrator
*
*/
public class Test01 {
public static void main(String[] args) {
System.out.println( Math.cbrt(100)); //立方根
System.out.println( Math.sqrt(100)); //平方根
System.out.println( Math.pow(3, 4)); //3的4次方
for(int i = 0 ; i<10 ; i++){
System.out.println( Math.random() );
}
}
}
package com.bjpowernode.demo03;
import java.text.DecimalFormat;
/**
* 數字格式化
* DecimalFormat
* # 任意數字
* 0 任意數字, 不足的位數補0
* , 千分位
* . 小數點
* @author Administrator
*
*/
public class Test02 {
public static void main(String[] args) {
DecimalFormat decimalFormat = new DecimalFormat("###,###.0000");
System.out.println( decimalFormat.format(12345612.45)); //12,345,612.4500
}
}
package com.bjpowernode.demo03;
import java.util.Random;
/**
* Random
* 隨機數類
* @author Administrator
*
*/
public class Test03 {
public static void main(String[] args) {
Random random = new Random();
//產生小數
for(int i= 1; i <= 10 ; i++){
System.out.println( random.nextDouble());
}
System.out.println("---------------");
//產生隨機整數
for(int i= 1; i <= 10 ; i++){
System.out.println( random.nextInt());
}
System.out.println("---------------");
//產生指定範圍的隨機整數
for(int i= 1; i <= 10 ; i++){
System.out.println( random.nextInt(100)); //[0,100)
}
}
}
package com.bjpowernode.demo03;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
/**
* BigInteger/BigDecimal
* 大的整數/大的小數
* 當精度要求比較高時使用, 科學計算 , 財務運算
* @author Administrator
*
*/
public class Test04 {
public static void main(String[] args) {
BigInteger i1 = new BigInteger("1234569789123564789034167489743413511313131313131");
BigInteger i2 = new BigInteger("89765435131313189123564789034167489743413511313131313131");
BigInteger i3 = i1.add(i2); //相加
System.out.println( i3 );
i3 = i1.subtract(i2);
System.out.println( i3);
i3 = i1.multiply(i2);
System.out.println( i3 );
//
BigDecimal d1 = new BigDecimal("123465478979871321324564654897321237468978932132.123154");
BigDecimal d2 = new BigDecimal("12348978945112123132154548787979876515871321324564654897321237468978932132.123154");
//注意,小數相除時,可能出現除數除不斷的情況, 就會出現java.lang.ArithmeticException異常
//小數相除時,一般指定最後小數的處理方式
BigDecimal d3 = d2.divide(d1, RoundingMode.CEILING);
System.out.println( d3 );
}
}