java中的數(shù)學(xué)計(jì)算函數(shù)
10多年的南岸網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整南岸建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“南岸網(wǎng)站設(shè)計(jì)”,“南岸網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Math類:
java.lang.Math類中包含基本的數(shù)字操作,如指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)。 java.math是一個(gè)包,提供用于執(zhí)行任意精度整數(shù)(BigInteger)算法和任意精度小數(shù)(BigDecimal)算法的類。 java.lang.Math類中包含E和PI兩個(gè)靜態(tài)常量,以及進(jìn)行科學(xué)計(jì)算的類(static)方法,可以直接通過(guò)類名調(diào)用。 public static final Double E = 2.7182818284590452354 public static final Double PI = 3.14159265358979323846 public static long abs(double x):傳回 x 的絕對(duì)值。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的自然對(duì)數(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開(kāi)平方值 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():傳回隨機(jī)數(shù)值,產(chǎn)生一個(gè)0-1之間的隨機(jī)數(shù)(不包括0和1)
NumberFormat類:
(public abstract class NumberFormat extends Format) 用java.text.NumberFormat類對(duì)輸出的數(shù)字結(jié)果進(jìn)行必要的格式化。 使用該類如下方法類實(shí)例化一個(gè)NumberFormat對(duì)象: public static final NumberFormat getInstance() 然后用該對(duì)象調(diào)用如下方法可以格式化數(shù)字number(返回字符串對(duì)象): 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ù)運(yùn)算。 兩個(gè)類設(shè)計(jì)思想一樣,這里只對(duì)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的絕對(duì)值的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)制)的字符串表示形式。
補(bǔ)充:
(1)abs():返回某數(shù)字的絕對(duì)值.參數(shù)可以是float、double、long或int。如果是byte或short類型,那么它們會(huì)被強(qiáng)制轉(zhuǎn)換成int類型。 (2)ceil()會(huì)找到下一個(gè)最大整數(shù)。例如參數(shù)為9.01時(shí),返回10.0。為-0.1時(shí),返回-0.0。返回比參數(shù)大的整數(shù),而且都是雙精度類型的。如果參數(shù)是整數(shù),則該方法會(huì)返回這個(gè)參數(shù)的雙精度型。 (3)floor()返回緊鄰的最小整數(shù)。作用與ceil()正好相反,返回的是比參數(shù)小的整數(shù),而且都是雙精度型。如果參數(shù)為整數(shù),則返回這個(gè)參數(shù)的雙精度型。 (4)max()返回兩個(gè)值中的最大值,只支持float double long int 不支持byte short。 (5)min()返回兩個(gè)值中的最小值,只支持float double long int 不支持byte short。 (6)random()返回一個(gè)隨機(jī)數(shù),一個(gè)在0.0到1.0之間的雙精度數(shù)。 (7)round()返回與某浮點(diǎn)數(shù)值最接近的整數(shù)值。參數(shù)可以為double和folat兩種,而且支持四舍五入。例如:參數(shù)為9.01時(shí),返回9,參數(shù)為9.5時(shí),返回10,參數(shù)為-9.5時(shí),返回-9。 (8)sqrt()返回某數(shù)值的平方根。如果該參數(shù)是"非數(shù)字"類型(NaN),或者小于零,則返回是NaN。
需要注意的問(wèn)題,類型自動(dòng)提升,其實(shí)類型提升是在運(yùn)算之前完成的
加法運(yùn)算 byte a = 1; byte b = 2; byte c = a+b; 報(bào)錯(cuò),因?yàn)閍+b之前會(huì)將a,b自動(dòng)提升為int 正確為: byte c = (byte)(a+b); 減法運(yùn)算 加法運(yùn)算是一樣的 乘法運(yùn)算 同樣遵循類型自動(dòng)提升 int a = 3*5; 結(jié)果為: 15 int類型 double b = 3*5.0; 結(jié)果為: 15.0 double類型 除法運(yùn)算 兩個(gè)整數(shù)相除結(jié)果為整數(shù),小數(shù)位截?cái)? int a = 10/4; 結(jié)果為2 int b 5/7; 結(jié)果為0 如果參與運(yùn)算有浮點(diǎn)數(shù),則進(jìn)行浮點(diǎ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(正無(wú)窮大) double d = -10.0/0; 結(jié)果為-Infinity(負(fù)無(wú)窮大) double e = 0.0/0; 結(jié)果為NaN(不是數(shù)字) 求余運(yùn)算分3步 第一步: 左邊操作數(shù)的絕對(duì)值減去右邊操作數(shù)的絕對(duì)值,得到差 第二步: 得到的差兩種情況 如果差比右邊操作數(shù)的絕對(duì)值大,再執(zhí)行第一步 如果差比右邊操作數(shù)的絕對(duì)值小,將差返回 第三步: 結(jié)果的符號(hào)為左邊操作數(shù)的符號(hào) 需要注意的是: 整數(shù)進(jìn)行求余時(shí),右邊操作數(shù)為0,則報(bào)錯(cuò),浮點(diǎn)數(shù)進(jìn)行求余時(shí),右邊操作數(shù)為0,則為NaN 15%4 = 3; -15%4 = -3; 15%0 報(bào)錯(cuò) 15.0%0 = NaN 自增自減運(yùn)算 int b = a++; 先把a(bǔ)的值賦給b,a再+1 int b = ++a; 先給a+1,再把a(bǔ)的值賦給b 關(guān)系運(yùn)算符 ==,!=,>,>=,<,<= 邏輯運(yùn)算符 短路與: 使用&&表示,雙目運(yùn)算符,只要第一個(gè)操作數(shù)為false,就發(fā)生短路,后面不執(zhí)行 短路或: 使用||表示,雙目運(yùn)算符,只要第一個(gè)操作數(shù)為true,就發(fā)生短路,后面不執(zhí)行 非短路與: 使用&表示,雙目運(yùn)算符,如果第一個(gè)操作數(shù)為false,第二個(gè)操作數(shù)還會(huì)執(zhí)行 非短路或: 使用|表示,雙目運(yùn)算符,如果第一個(gè)操作數(shù)為true,第二個(gè)操作數(shù)還會(huì)執(zhí)行 String str = null; if(str != null & !str.equals("")){} 報(bào)錯(cuò),空指針異常,因?yàn)榈诙€(gè)操作數(shù)也執(zhí)行了 if(str != null & !str.equals("")){} 不報(bào)錯(cuò),因?yàn)榈诙€(gè)操作數(shù)沒(méi)有執(zhí)行 非運(yùn)算 三目運(yùn)算符 5>10?true:false; 位運(yùn)算 位運(yùn)算cpu直接支持的,效率最高 位運(yùn)算允許對(duì)整數(shù)中單個(gè)比特進(jìn)行操作,為運(yùn)算會(huì)對(duì)兩個(gè)操作數(shù)中對(duì)應(yīng)比特執(zhí)行布爾代數(shù)運(yùn)算,產(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 左移動(dòng)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 右移動(dòng)1bit,在右邊填充0: 0000 0000 0000 0000 0000 0000 0000 0100
數(shù)學(xué)常量
Math.PI: 圓周率常量 Math.E: 自然常量 數(shù)學(xué)函數(shù) [java] view plaincopy abs() 返回絕對(duì)值 ceil() 返回一個(gè)大于等于操作數(shù)的最近整數(shù)值 Math.ceil(8.7); //9.0 Math.ceil(9.0); //9.0 Math.ceil(9.0); //9.0 floor() 返回一個(gè)不大于操作數(shù)的最近整數(shù)值 Math.floor(8.7); //8.0 Math.floor(9.0); //8.0 Math.floor(9.0); //9.0 max() 返回兩個(gè)操作數(shù)的最大一個(gè) Math.max(1,2); min() 返回兩個(gè)操作數(shù)的最小一個(gè) Math.min(1,2); random() 返回大于等于0.0小于1.0的隨機(jī)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
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!