數字操做類是針對數字進行處理,可使用內置數學類,完成。也能夠生產隨機數java
java.lang.Math類是整個的JDK裏面惟一一個與數學計算有關的程序類。着裏面提供有一些基礎的數學函數,這個類中的全部方法都使用了static進行定義,全部的方法均可以經過類名稱直接調用,而此類中有一個round須要特別注意dom
四捨五入方法定義:public static long round(double a)ide
範例:觀察round()方法函數
1 package cn.Tony.demo; 2 3 public class TestDemo { 4 public static void main(String[] args) throws Exception { 5 double num=151516.56515; 6 System.out.println(Math.round(num)); 7 } 8 }
若是直接使用round方法處理的話默認的處理原則就是將小數位直接進位,網站
範例:繼續觀察round的數據spa
1 package cn.Tony.demo; 2 3 public class TestDemo { 4 public static void main(String[] args) throws Exception { 5 System.out.println(Math.round(15.51));//16 6 System.out.println(Math.round(15.5));//16 7 //若是負數小數沒大於0.5都不進位 8 System.out.println(Math.round(-15.5));//-15 9 System.out.println(Math.round(-15.51));//-16 10 } 11 }
我但願能夠準確的保存小數位處理code
1 package cn.Tony.demo; 2 3 class MyMath{ 4 /** 5 * 進行數據的四捨五入操做 6 * @param num 表示原始操做數據 7 * @param scale 表示保留的小數位數 8 * @return 已經正確四捨五入後的內容 9 */ 10 public static double round(double num,int scale) { 11 return Math.round(num*Math.pow(10, scale))/Math.pow(10, scale); 12 } 13 } 14 public class TestDemo { 15 public static void main(String[] args) throws Exception { 16 System.out.println(MyMath.round(1823.2567,2)); 17 } 18 }
這種四捨五入的操做是最簡單的處理模式。之後的開發必定會是使用到blog
在不少語言裏面都支持隨機數子的產生,那麼在Java裏面使用java.util.Random類來實現這種隨機數的處理;ip
範例:產生隨機數ci
1 package cn.Tony.demo; 2 3 import java.util.Random; 4 5 public class TestDemo { 6 public static void main(String[] args) throws Exception { 7 Random rand=new Random(); 8 for(int x=0;x<10;x++) { //100表示最大值,數據的範圍是0到99 9 System.out.println(rand.nextInt(100)+"."); 10 } 11 } 12 }
在許多的網站上的英文隨機驗證碼實際上就能夠經過此類模式完成,
1 package cn.Tony.demo; 2 3 import java.util.Random; 4 public class TestDemo { 5 public static void main(String[] args) throws Exception { 6 char data[]=new char[] {'a','b','c','d'}; 7 Random rand=new Random(); 8 for(int x=0;x<3;x++) { 9 System.out.println(data[rand.nextInt(data.length)]+"."); 10 } 11 } 12 }
若是是中文驗證碼也很簡單,寫一箇中文驗證碼庫。
大數字的操做類:
通常的開發中使用的數據都包含在給定的數據之中,可是有時候數據真的很大,超過了預期的範圍。原始程序中可使用字符串解決。若是要進行數學計算,則取出每一位進行手工的處理。可是這種操做很麻煩。因此java.math包裏面提供有兩個類:BigInteger BigDecimal。這兩個類都屬於Number類,
範例:觀察BigInteger操做
1 package cn.Tony.demo; 2 import java.math.BigInteger; 3 public class TestDemo { 4 public static void main(String[] args) throws Exception { 5 BigInteger bigA=new BigInteger("46515615615151111111"); 6 BigInteger bigB=new BigInteger("1161561"); 7 System.out.println("加法計算:"+bigA.add(bigB)); 8 System.out.println("減法計算:"+bigA.subtract(bigB)); 9 System.out.println("乘法計算:"+bigA.multiply(bigB)); 10 System.out.println("除法計算:"+bigA.divide(bigB)); 11 BigInteger result[]=bigA.divideAndRemainder(bigB); 12 System.out.println("商"+result[0]+",餘數"+result[1]); 13 } 14 }
範例:大小數BigDecimal
1 package cn.Tony.demo; 2 import java.math.BigDecimal; 3 class MyMath{ 4 public static double round(double num,int scale) { 5 return new BigDecimal(num).divide(new BigDecimal(1),scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 6 } 7 } 8 public class TestDemo { 9 public static void main(String[] args) throws Exception { 10 System.out.println(MyMath.round(16516.561, 2)); 11 } 12 }
關於四捨五入的處理實際上有兩類作法。
這些給定的默認的數學操做的功能都十分有限,在開法裏面若是你真的用到複雜的邏輯,你要找其餘的開發包去作。