Java的數字類處理
數字格式化:
Java主要對浮點型資料進行數字格式化操作,其中浮點型包括float(單精度)型和double(雙精度)型,在 Java中使用
Java.text.DecimalFormat格式化數字;
在Java中沒有格式化的數字遵循以下原則;
1.如果資料絕對值大於0.001並且小於10000000,Java將以常規小數形式表示
2.如果資料絕對值小於0.001或者大於10000000,Java將以科學記數法表示
而由於上述的輸出格式不能滿足解決實際問題的要求,通常將結果格式化為制定形式後輸出。在Java中我們使用DecimalFormat類進行格式化操作;
DecimalFormat是NumberFormat的一個子類,用於格式化十進位制數字,他可以將一些數字格式化為整數、浮點數、百分數等。通過該類可以可以給要輸出的資料加上單位或者控制輸出資料的精度。一般情況我們在例項化DecimalFormat物件時傳遞數字格式,也可以通過DecimalFormat類中的applyPattern()方法來實現數字格式化。
在格式化數字時,在DecimalFormat類中使用一些特殊字元構成了一個格式化模板,使數字按一定的特殊字元規則進行匹配。
下面是格式化模板中的特殊字元及其含義:
字元 | 說明 |
0 | 代表阿拉伯數字,使用特殊字元“0”表示數字的一位阿拉伯數字,如果不存在該數字,則顯示0 |
# | 代表阿拉伯數字,使用特殊字元“#”表示數字的一位阿拉伯數字,如果存在該數字,則顯示字元,反之則不顯示 |
. | 小數分隔符或者貨幣小數分隔符 |
- | 負號 |
, | 分組分隔符 |
E | 分隔科學記數法中的尾數和指數 |
% | 放置在數字的字首或者字尾,將數字乘以100顯示為百分數 |
\u2030 | 放置在數字的字首或者字尾,將數字乘以1000顯示為千分數 |
\u00A4 | 放置在數字的字首或者字尾,作為貨幣記號 |
' | 單引號,當上述特殊符號出現時,應為其新增此符號,系統會將此符號視為普通符號處理 |
myFormat.setGroupingSize(2);//設定將數字分組的大小 假設一串數字為123456790,則分組後輸出為12.34.56.78.90
數學運算:
Java語言中提供了一個執行數學的基本運算類Math類,該類包括常用的數學運算,如:函式方法,指函式方法,對函式方法,平方根函式方法等一些常用的數學函式,還有一些常量如:PI和E等。
Math類:
此類中的方法都被定義為static形式,呼叫方法Math.數學方法/常量
隨機數:
Math.Random()方法用於產生隨機數數字,該方法預設生成大於等於0.0且小於1.0的double型隨機數。
m+(int)(Math.Random()*n)----->即大於等於m且小於m+n的隨機數
( int)(Math.Random()*n)------>大於等於0.0且小於n的隨機數
Random類:
除了Math中的random()方法可以獲取隨機數以外,Java中還提供了用Java.util.Random類獲取隨機數。
預設為系統當前時間為生成器種子
Random r=new Random(生成器種子/預設為系統當前時間);
r.next資料型別(n);
大數字運算:
BigInteger和BigDecimal,int的最大值為2的31次方-1,如果還要計算更大的數字就需要運用到BigInteger和BigDecimal。
他們的區別在於BigDecimal加入了小數的概念。