java編程入門11 數字處理類
1.數字格式化
1.DecimalFormat類(用於格式化十進制數字)
1)DecimalFormat類是NumberFormat的子類,它可以將一些數字格式化為整數、浮點數、百分數等。通過使用該類可以為要輸出的數字加上單位或控制數字的精度。一般情況下可以在實例化DecimalFormat對象時傳遞數字格式,也可以通過DecimalFormat類中的applyPattern()方法來實現數字的格式化
2)在格式化數字時,DecimalFormat類中使用一些特殊字符構成一個格式化模板,使數字按照一定的特殊字符規則進行匹配
3)DecimalFormat類中的特殊字符說明
字符 | 說明 |
0 | 代表阿拉伯數字,如果該位不存在數字,則顯示0 |
# | 代表阿拉伯數字,如果該位存在數字,則顯示字符;如果該位不存在數字,則不顯示 |
. | 小數分隔符或貨幣小數分隔符 |
- | 負號 |
, | 分組分隔符 |
E | 分隔科學計數法中的尾數與指數 |
% | 放置在數字的前綴或後綴,將數字乘以100顯示為百分數 |
\u2030 | 放置在數字的前綴或後綴,將數字乘以1000顯示為千分數 |
\u00A4 | 放置在數字的前綴或後綴,代表貨幣標記 |
‘ | 當上述特殊字符出現在數字中時,應為特殊字符添加單引號,系統會將此字符視為普通字符處理 |
4)常用方法
1.setGroupingSize()方法設置格式化數字的分組大小
2.setGroupingUsed()方法設置是否可以對數字進行分組操作
public class Myclass { public static void SingleFormat(String pattern,double value) { DecimalFormat myFormat =new DecimalFormat(pattern); String output=myFormat.format(value); System.out.println(value+" "+pattern+" "+output); } public static void UseApplyMethodFormat(String pattern,doublevalue) { DecimalFormat myFormat=new DecimalFormat(); myFormat.applyPattern(pattern); String output=myFormat.format(value); System.out.println(value+" "+pattern+" "+output); } public static void main(String[] args) { SingleFormat("0.###kg",1.123); SingleFormat("00.00",1.126); UseApplyMethodFormat("##.##", 1.125); UseApplyMethodFormat("#.##%",0.75); DecimalFormat myFormat =new DecimalFormat(); myFormat.setGroupingSize(2); String output=myFormat.format(123456.789); System.out.println(output); myFormat.setGroupingUsed(false); String output1=myFormat.format(123456.789); System.out.println(output1); } }
註:
1)在這裏值得一提的是Java的精確度的計數保留法默認為HALF_EVEN,向最接近的數字舍入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數舍入。(銀行家舍入法)
如果舍棄部分左邊的數字為奇數,則舍入行為與 ROUND_ HALF_UP 相同;
如果為偶數,則舍入行為與 ROUND_ HALF_DOWN 相同。,
不妨試一試SingleFormat("#",7.5);SingleFormat("#",8.5);與我們常用的四舍五入不同,如果想要改變java的精確度的計數保留法的模式,需要使用
ob(DecimalFormat對象).setRoundingMode(RoundingMode.HALF_UP);
2)改變十進制數的輸出格式還可以使用String.Format()來實現
String str=String.format("%.4f",3.1415926);
System.out.println(str);
2.數學運算
1.在Math類中提供了眾多數學函數方法,主要包括三角函數方法、指數函數方法、取整函數方法、取最大值、最小值以及平均值函數方法,這些方法都被定義為static形式。在Math類中還提供了一些常用的數學常量。如PI,E等
2.三角函數
1)public static double sin(double a): 返回角的三角正弦
2)public static double cos(double a): 返回角的三角余弦
3)public static double tan(double a): 返回角的三角正切
4)public static double asin(double a): 返回一個值的反正弦
5)public static double acos(double a): 返回一個值的反余弦
6)public static double atan(double a): 返回一個值的反正切
7)public static double toRadians(double angdeg): 將角度轉換為弧度
8)public static double toDegrees(double angrad): 將弧度轉換為角度
註:角都與弧度之間的轉換通常是不精確的
3.指數函數
1) public static double exp(double a) :用於獲取e的a次方
2) public static double log(double a) :用於取自然對數,即lna的值
3) public static double log10(double a) :用於取底數為10的對數
4) public static double sqrt(double a) :用於取a的平方根
5) public static double cbrt(double a) :用於取a的立方根
6) public static double pow(double a,double b) :用於取a的b次方
4.取整函數
1) public static double ceil(double a) :返回大於等於參數的最小整數
2) public static double floor(double a) :返回小於等於參數的最大整數
3) public static double rint(double a) :返回與參數最接近的整數,如果兩個同為整數且同樣接近,則結果卻偶數
4) public static int round(float a) :將參數加入0.5後向下取整
5) public static long round(double a) :將參數加入0.5後向下取整,然後強制轉換為長整型
5.取最大值、最小值、絕對值函數
1) public static double max():取兩個數的最大值(int\long\double\float)
2) public static double min():取兩個數的最小值(int\long\double\float)
3) public static double abs():取絕對值(int\long\double\float)
3.隨機數
在java中主要提供了兩種方式產生隨機數
1.Math.random()方法
1.這個方法默認生成大於等於0.0且小於1.0的double型隨機數
2.使用Math類的random方法稍加處理也可以生成其他隨機數,比如生成A~Z之間的隨機字符
(char) (‘a‘+Math.random()*(‘z‘-‘a‘+1));
2.Random類
1.通過實例化一個Random對象創建一個隨機數生成器,java編譯器是以系統當前時間作為隨機數種子
2.也可以在實例化Random對象時,設置隨機數生成器的種子
Random r=new Random(seedValue)
3.Random類提供了獲取各種數據類型隨機數的方法
1) public int nextInt() :返回隨機整數
2) public int nextInt(int n) :返回大於等於0且小於n的隨機整數
3) public long nextLong() :返回隨機長整型值
4) public boolean nextBoolean() :返回隨機布爾型值
5) public float nextFloat() :返回隨機浮點型值
6) public double nextDouble() :返回隨機雙精度型值 、
7) public double nextGaussian() :返回概率密度為高斯分布的雙精度值
4.大數運算
1.java提供了大數字的操作類,即java.math.BigInteger類與java.math.BigDecimal類,這兩個類用於高精度計算,其中BigInteger類針對大整數的處理類,而BigDecimal類針對大小數的處理類。
2.BigInteger
1.構造函數
最直接的方式是參數以字符串的形式代表要處理的數字
public BigInteger(String val)
2.運算方法
1) public BigInteger add(BigInteger val) :加法
2) public BigInteger subtract(BigInteger val) :減法
3) public BigInteger multiply(BigInteger val) :乘法
4) public BigInteger divide(BigInteger val) :除法
5) public BigInteger remainder(BigInteger val) :取余
6) public BigInteger[] divideAndRemainder(BigInteger val) :用數組保存商和余數,結果數組中第一個值為商,第二個為余數
7) public BigInteger pow(int exponent) :進行去參數的exponent次方操作
8) public BigInteger negate() :去相反數
9) public BigInteger shiftLeft(int n) :將數字左移n位,如果n為負數,做右移操作
10) public BigInteger shiftRight(int n) :將數字右移n位,如果n為負數,做左移操作
11) public BigInteger and(BigInteger val) :做與操作
12) public BigInteger or(BigInteger val) :做或操作
13) public BigInteger compareTo(BigInteger val) :做數字比較操作
14) public BigInteger equals(Obeject x) :當參數x是BigInteger類型的數字並且數值相等時,返回true
15) public BigInteger min(BigInteger val) :返回較小的數值
16) public BigInteger max(BigInteger val) :返回較大的數值
3.BigDecimal
1.構造方法
在BigDecimal類中常用的構造方法如下
1)public BigDecimal(double val)
2)public BigDecimal(String val)
2.常用方法 1) public BigDecimal add(BigDecimal augend) :加法
2) public BigDecimal subtract(BigDecimal subtrahend) :減法
3) public BigDecimal multiply(BigDecimal multiplicand) :乘法
4) public BigDecimal add(BigDecimal divisor,int scale,int roundingMode) :除法 三個參數分別代表除數,商的小數點後的位數,近似處理模式
2018-12-19
java編程入門11 數字處理類