溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中的數(shù)學(xué)計算函數(shù)的總結(jié)

發(fā)布時間:2020-09-26 20:48:58 來源:腳本之家 閱讀:232 作者:liuhmmjj 欄目:編程語言

java中的數(shù)學(xué)計算函數(shù)

Math類:

 java.lang.Math類中包含基本的數(shù)字操作,如指數(shù)、對數(shù)、平方根和三角函數(shù)。
 java.math是一個包,提供用于執(zhí)行任意精度整數(shù)(BigInteger)算法和任意精度小數(shù)(BigDecimal)算法的類。
 
 java.lang.Math類中包含E和PI兩個靜態(tài)常量,以及進(jìn)行科學(xué)計算的類(static)方法,可以直接通過類名調(diào)用。
 public static final Double E = 2.7182818284590452354 
 public static final Double PI = 3.14159265358979323846
 
 public static long abs(double x):傳回 x 的絕對值。X也可int long float
 public static long sin(double x): 傳回x徑度的正弦函數(shù)值 
 public static long cos(double x):傳回x徑度的余弦函數(shù)值  
 public static long tan(double x): 傳回x徑度的正切函數(shù)值 
 public static long asin(double x):傳回x值的反正弦函數(shù)值。
 public static long acos(double x):傳回x值的反余弦函數(shù)值。
 public static long atan(double x):傳回x值的反正切函數(shù)值。 
 public static long atan2(double x, double y):傳回極坐標(biāo)(polar)的θ值 
 public static long floor(double x):傳回不大于x的最大整數(shù)值 
 public static long ceil(double x):傳回不小于x的最小整數(shù)值。 
 public static long exp(double x):傳回相當(dāng)于ex值 
 public static long log(double x):傳回x的自然對數(shù)函數(shù)值 
 public static long max(double x,double y):傳回x、y較大數(shù) 
 public static long min(double x,double y):傳回x、y較小數(shù) 
 public static long pow(double x,double y):傳回x的y次冪值 
 public static long sqrt(double x): 傳回x開平方值 
 public static long rint(double x):傳回最接近x的整數(shù)值 
 public static long round(double x):傳回x的四舍五入值 
 public static long toDegrees(double angrad):傳回將angrad徑度轉(zhuǎn)換成角度 
 public static long toRadians(double angdeg): 傳回將angdeg角度轉(zhuǎn)換成徑度
 public static long random():傳回隨機數(shù)值,產(chǎn)生一個0-1之間的隨機數(shù)(不包括0和1)
 

NumberFormat類:

(public abstract class NumberFormat extends Format)
用java.text.NumberFormat類對輸出的數(shù)字結(jié)果進(jìn)行必要的格式化。

 使用該類如下方法類實例化一個NumberFormat對象:
  public static final NumberFormat getInstance()
 然后用該對象調(diào)用如下方法可以格式化數(shù)字number(返回字符串對象):
  public final String format(double number)
 
 NumberFormat類有如下常用方法:
 public void setMaximumFractionDigits(int newValue)//設(shè)置數(shù)的小數(shù)部分所允許的最大位數(shù)。
 public void setMaximumIntegerDigits(int newValue)//設(shè)置數(shù)的整數(shù)部分所允許的最大位數(shù)。
 public void setMinimumFractionDigits(int newValue)//設(shè)置數(shù)的小數(shù)部分所允許的最小位數(shù)。
 public void setMinimumIntegerDigits(int newValue)//設(shè)置數(shù)的整數(shù)部分所允許的最小位數(shù)。
 (更多方法及用法看JDK6API參考。)

  BigInteger類、BigDecimal類:

 java.math包中的BigInteger類和BigDecimal類分別提供任意精度的整數(shù)和小數(shù)運算。
 兩個類設(shè)計思想一樣,這里只對BigInterger類稍做介紹,細(xì)節(jié)可以查看JDK6API參考。
 
 構(gòu)造方法如下:
  BigInteger(String val) //將 BigInteger 的十進(jìn)制字符串表示形式轉(zhuǎn)換為 BigInteger。
  還有很多考慮周全的構(gòu)造函數(shù),建議要準(zhǔn)備寫特殊需求的BigInteger前先認(rèn)真翻下JDK。
 
 常用方法:
  abs() //返回其值是此BigInteger的絕對值的BigInteger。
  add(BigInteger val) //返回其值為(this+val)的BigInteger。
  subtract(BigInteger val) //返回其值為(this-val)的BigInteger。
  multiply(BigInteger val) // 返回其值為(this*val)的BigInteger。
  divide(BigInteger val) //返回其值為(this/val)的BigInteger。
  remainder(BigInteger val) //返回其值為(this%val)的BigInteger。
  compareTo(BigInteger val) //將此BigInteger與指定的BigInteger進(jìn)行比較。返回值1、0、-1分別表示大于、等于、小于
  pow(int exponent) //返回當(dāng)前大數(shù)的exponent次冪。
  toString() //返回此BigInteger的十進(jìn)制字符串表示形式。
  toString(int radix) //返回此BigInteger的給定基數(shù)(radix進(jìn)制)的字符串表示形式。

補充:

(1)abs():返回某數(shù)字的絕對值.參數(shù)可以是float、double、long或int。如果是byte或short類型,那么它們會被強制轉(zhuǎn)換成int類型。
(2)ceil()會找到下一個最大整數(shù)。例如參數(shù)為9.01時,返回10.0。為-0.1時,返回-0.0。返回比參數(shù)大的整數(shù),而且都是雙精度類型的。如果參數(shù)是整數(shù),則該方法會返回這個參數(shù)的雙精度型。
(3)floor()返回緊鄰的最小整數(shù)。作用與ceil()正好相反,返回的是比參數(shù)小的整數(shù),而且都是雙精度型。如果參數(shù)為整數(shù),則返回這個參數(shù)的雙精度型。
(4)max()返回兩個值中的最大值,只支持float double long int 不支持byte short。
(5)min()返回兩個值中的最小值,只支持float double long int 不支持byte short。
(6)random()返回一個隨機數(shù),一個在0.0到1.0之間的雙精度數(shù)。
(7)round()返回與某浮點數(shù)值最接近的整數(shù)值。參數(shù)可以為double和folat兩種,而且支持四舍五入。例如:參數(shù)為9.01時,返回9,參數(shù)為9.5時,返回10,參數(shù)為-9.5時,返回-9。
(8)sqrt()返回某數(shù)值的平方根。如果該參數(shù)是"非數(shù)字"類型(NaN),或者小于零,則返回是NaN。

需要注意的問題,類型自動提升,其實類型提升是在運算之前完成的 

加法運算 
  byte a = 1; 
  byte b = 2; 
  byte c = a+b; 
  報錯,因為a+b之前會將a,b自動提升為int 
  正確為: byte c = (byte)(a+b); 
減法運算 
  加法運算是一樣的 
乘法運算 
  同樣遵循類型自動提升 
  int a = 3*5;  結(jié)果為: 15 int類型 
  double b = 3*5.0;  結(jié)果為: 15.0 double類型 
除法運算 
  兩個整數(shù)相除結(jié)果為整數(shù),小數(shù)位截斷 
    int a = 10/4; 結(jié)果為2 
    int b 5/7; 結(jié)果為0 
  如果參與運算有浮點數(shù),則進(jìn)行浮點數(shù)除 
    double a = 10.0/5.0;  結(jié)果為2.0 
    double b = 10.0/5;   結(jié)果為2.0 
    double c = 10.0/0;   結(jié)果為Infinity(正無窮大) 
    double d = -10.0/0;   結(jié)果為-Infinity(負(fù)無窮大) 
    double e = 0.0/0;    結(jié)果為NaN(不是數(shù)字) 
求余運算分3步 
  第一步: 左邊操作數(shù)的絕對值減去右邊操作數(shù)的絕對值,得到差 
  第二步: 得到的差兩種情況 
    如果差比右邊操作數(shù)的絕對值大,再執(zhí)行第一步 
    如果差比右邊操作數(shù)的絕對值小,將差返回 
  第三步: 結(jié)果的符號為左邊操作數(shù)的符號 
  需要注意的是: 整數(shù)進(jìn)行求余時,右邊操作數(shù)為0,則報錯,浮點數(shù)進(jìn)行求余時,右邊操作數(shù)為0,則為NaN 
    15%4 = 3; 
    -15%4 = -3; 
    15%0 報錯 
    15.0%0 = NaN 
自增自減運算  
  int b = a++; 先把a的值賦給b,a再+1  
  int b = ++a; 先給a+1,再把a的值賦給b  
關(guān)系運算符 
  ==,!=,>,>=,<,<= 
邏輯運算符 
  短路與: 使用&&表示,雙目運算符,只要第一個操作數(shù)為false,就發(fā)生短路,后面不執(zhí)行 
    短路或: 使用||表示,雙目運算符,只要第一個操作數(shù)為true,就發(fā)生短路,后面不執(zhí)行 
    非短路與: 使用&表示,雙目運算符,如果第一個操作數(shù)為false,第二個操作數(shù)還會執(zhí)行 
  非短路或: 使用|表示,雙目運算符,如果第一個操作數(shù)為true,第二個操作數(shù)還會執(zhí)行 
    String str = null; 
    if(str != null & !str.equals("")){} 報錯,空指針異常,因為第二個操作數(shù)也執(zhí)行了 
    if(str != null & !str.equals("")){} 不報錯,因為第二個操作數(shù)沒有執(zhí)行 
  非運算 
三目運算符 
  5>10?true:false; 
位運算 
  位運算cpu直接支持的,效率最高 
  位運算允許對整數(shù)中單個比特進(jìn)行操作,為運算會對兩個操作數(shù)中對應(yīng)比特執(zhí)行布爾代數(shù)運算,產(chǎn)生結(jié)果 
  & 與: 二者比特都是1,則結(jié)果為1,否則為0 
  | 或: 二者比特都是0,則結(jié)果為0,否則為1 
  ^ 異或: 二者比特相同,則結(jié)果為0,否則為1 
  ~ 非: 講被操作數(shù)按位取反 
    int a = 12|2; // 1100|0010 打印結(jié)果14 
      1100 
    |  0010 
    -------- 
      1110 
<< 左移 
  int a = 8<<1; //打印16 
  int為32bit 
    8的二進(jìn)制位:         0000 0000 0000 0000 0000 0000 0000 1000 
    左移動1bit,在右邊填充0: 0000 0000 0000 0000 0000 0000 0001 0000 
>> 右移 
  int a = 8>>1; //打印4 
  int為32bit 
    8的二進(jìn)制位:         0000 0000 0000 0000 0000 0000 0000 1000 
    右移動1bit,在右邊填充0: 0000 0000 0000 0000 0000 0000 0000 0100 

數(shù)學(xué)常量

Math.PI: 圓周率常量 
Math.E: 自然常量 
數(shù)學(xué)函數(shù)
[java] view plaincopy 
abs() 
  返回絕對值 
ceil() 
  返回一個大于等于操作數(shù)的最近整數(shù)值 
  Math.ceil(8.7); //9.0 
  Math.ceil(9.0); //9.0 
  Math.ceil(9.0); //9.0 
floor() 
  返回一個不大于操作數(shù)的最近整數(shù)值 
  Math.floor(8.7); //8.0 
  Math.floor(9.0); //8.0 
  Math.floor(9.0); //9.0 
max() 
  返回兩個操作數(shù)的最大一個 
  Math.max(1,2); 
min() 
  返回兩個操作數(shù)的最小一個 
  Math.min(1,2); 
random() 
  返回大于等于0.0小于1.0的隨機double型 
round() 
  返回最接近操作數(shù)的整數(shù)(四舍五入) 
toRadians() 
  轉(zhuǎn)換為弧度 
  Math.toRadians(90.0); //1.57079... 
sin() 
  返回給定角度的正弦,操作數(shù)是double型 
  Math.sin(Math.toRadians(90.0)); //求90度角的正弦值,返回1.0 
cos() 
  返回給定角度的余弦,操作數(shù)是double型 
  Math.cos(Math.toRadians(0.0)); //求0度角的余弦值,返回1.0 
tan() 
  返回給定角度的正切,操作數(shù)是double型 
  Math.tan(Math.toRadians(45.0)); //求45度角的正切值,返回1.0 
sqrt() 
  返回給定值的平方根,,操作數(shù)是double型 
  Math.sqrt(4.0); //2.0 
  Math.sqrt(-4.0); //Nan 
toDegrees() 
  返回給定弧度的角度值 
  Math.toDegrees(Math.PI*0.5); //90.0 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI