欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年07月04日 11:58:44   作者:liuhmmjj  
這篇文章主要介紹了java中的數(shù)學計算函數(shù)的總結(jié)的相關資料,需要的朋友可以參考下

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

Math類:

 java.lang.Math類中包含基本的數(shù)字操作,如指數(shù)、對數(shù)、平方根和三角函數(shù)。
 java.math是一個包,提供用于執(zhí)行任意精度整數(shù)(BigInteger)算法和任意精度小數(shù)(BigDecimal)算法的類。
 
 java.lang.Math類中包含E和PI兩個靜態(tài)常量,以及進行科學計算的類(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):傳回極坐標(polar)的θ值 
 public static long floor(double x):傳回不大于x的最大整數(shù)值 
 public static long ceil(double x):傳回不小于x的最小整數(shù)值。 
 public static long exp(double x):傳回相當于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é)果進行必要的格式化。

 使用該類如下方法類實例化一個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ù)。
 public void setMaximumIntegerDigits(int newValue)//設置數(shù)的整數(shù)部分所允許的最大位數(shù)。
 public void setMinimumFractionDigits(int newValue)//設置數(shù)的小數(shù)部分所允許的最小位數(shù)。
 public void setMinimumIntegerDigits(int newValue)//設置數(shù)的整數(shù)部分所允許的最小位數(shù)。
 (更多方法及用法看JDK6API參考。)

  BigInteger類、BigDecimal類:

 java.math包中的BigInteger類和BigDecimal類分別提供任意精度的整數(shù)和小數(shù)運算。
 兩個類設計思想一樣,這里只對BigInterger類稍做介紹,細節(jié)可以查看JDK6API參考。
 
 構(gòu)造方法如下:
  BigInteger(String val) //將 BigInteger 的十進制字符串表示形式轉(zhuǎn)換為 BigInteger。
  還有很多考慮周全的構(gòu)造函數(shù),建議要準備寫特殊需求的BigInteger前先認真翻下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進行比較。返回值1、0、-1分別表示大于、等于、小于
  pow(int exponent) //返回當前大數(shù)的exponent次冪。
  toString() //返回此BigInteger的十進制字符串表示形式。
  toString(int radix) //返回此BigInteger的給定基數(shù)(radix進制)的字符串表示形式。

補充:

(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ù),則進行浮點數(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(負無窮大) 
    double e = 0.0/0;    結(jié)果為NaN(不是數(shù)字) 
求余運算分3步 
  第一步: 左邊操作數(shù)的絕對值減去右邊操作數(shù)的絕對值,得到差 
  第二步: 得到的差兩種情況 
    如果差比右邊操作數(shù)的絕對值大,再執(zhí)行第一步 
    如果差比右邊操作數(shù)的絕對值小,將差返回 
  第三步: 結(jié)果的符號為左邊操作數(shù)的符號 
  需要注意的是: 整數(shù)進行求余時,右邊操作數(shù)為0,則報錯,浮點數(shù)進行求余時,右邊操作數(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  
關系運算符 
  ==,!=,>,>=,<,<= 
邏輯運算符 
  短路與: 使用&&表示,雙目運算符,只要第一個操作數(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ù)中單個比特進行操作,為運算會對兩個操作數(shù)中對應比特執(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的二進制位:         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的二進制位:         0000 0000 0000 0000 0000 0000 0000 1000 
    右移動1bit,在右邊填充0: 0000 0000 0000 0000 0000 0000 0000 0100 

數(shù)學常量

Math.PI: 圓周率常量 
Math.E: 自然常量 
數(shù)學函數(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 

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

相關文章

  • Springboot之自定義全局異常處理的實現(xiàn)

    Springboot之自定義全局異常處理的實現(xiàn)

    這篇文章主要介紹了Springboot之自定義全局異常處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • mybatis注解開發(fā)使用foreach方式

    mybatis注解開發(fā)使用foreach方式

    這篇文章主要介紹了mybatis注解開發(fā)使用foreach方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Springboot死信隊列?DLX?配置和使用思路分析

    Springboot死信隊列?DLX?配置和使用思路分析

    死信隊列簡稱就是DLX,死信交換機和死信隊列和普通的沒有區(qū)別,當消息成為死信后,如果該隊列綁定了死信交換機,則消息會被死信交換機重新路由到死信隊列,本文給大家介紹Springboot死信隊列?DLX的相關知識,感興趣的朋友一起看看吧
    2022-03-03
  • SpringBoot3中token攔截器鏈的設計與實現(xiàn)步驟

    SpringBoot3中token攔截器鏈的設計與實現(xiàn)步驟

    本文介紹了spring boot后端服務開發(fā)中有關如何設計攔截器的思路,文中通過代碼示例和圖文講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-03-03
  • mybatis之嵌套查詢和嵌套結(jié)果有哪些區(qū)別

    mybatis之嵌套查詢和嵌套結(jié)果有哪些區(qū)別

    這篇文章主要介紹了mybatis之嵌套查詢和嵌套結(jié)果有哪些區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 解決mac最新版intellij idea崩潰閃退crash的問題

    解決mac最新版intellij idea崩潰閃退crash的問題

    這篇文章主要介紹了解決mac最新版intellij idea崩潰閃退crash的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java運算符>、>>、>>>三者的區(qū)別

    Java運算符>、>>、>>>三者的區(qū)別

    這篇文章主要介紹了Java運算符>、>>、>>>三者的區(qū)別,做了一個簡單的對比,并用實例說明,需要的朋友可以參考下
    2014-06-06
  • Java Junit單元測試實例詳解

    Java Junit單元測試實例詳解

    在本篇文章里小編給大家分享的是關于Java Junit單元測試的相關知識點內(nèi)容,有興趣的朋友們學習下。
    2019-11-11
  • springboot整合redis集群過程解析

    springboot整合redis集群過程解析

    這篇文章主要介紹了springboot整合redis集群過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Mybatis配置之properties和settings標簽的用法

    Mybatis配置之properties和settings標簽的用法

    這篇文章主要介紹了Mybatis配置之properties和settings標簽的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論