1. 程式人生 > >java編程入門11 數字處理類

java編程入門11 數字處理類

har 對數 添加 tip 後綴 構造 ora 相反數 使用

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,double
value) { 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 數字處理類