真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中java.lang.Math庫怎么用-創(chuàng)新互聯(lián)

這篇文章主要介紹java中java.lang.Math庫怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),賣鏈接,廣告投放平臺(tái)為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

java.lang.Math 庫提供了常用的數(shù)學(xué)計(jì)算工具

常量

final double E = 2.7182818284590452354;         // 自然對(duì)數(shù)底數(shù)final double PI = 3.14159265358979323846;        // 圓周率final double DEGREES_TO_RADIANS = 0.017453292519943295; // 角度轉(zhuǎn)弧度final double RADIANS_TO_DEGREES = 57.29577951308232;  // 弧度轉(zhuǎn)角度

取整

abs(x): 絕對(duì)值  floor(x): 向下取整  ceil(x): 向上取整  round(x): 四舍五入,如果有兩個(gè)(x.5),返回較大的那個(gè)數(shù)  rint(x): 最接近的整數(shù),如果有兩個(gè)(x.5),返回偶數(shù)  floorDiv(x, y): 向下取整除法  floorMod(x, y): java 默認(rèn)的取摸 % 得到的結(jié)果和 x 的符號(hào)相同,floorMod 和 y 的符號(hào)相同

double delta = 0.0000001;assertEquals(Math.abs(-6), 6);assertEquals(Math.floor(-6.2), -7, delta); // 向下取整assertEquals(Math.floor(6.2), 6, delta);assertEquals(Math.floor(6.8), 6, delta);assertEquals(Math.ceil(-6.2), -6, delta);  // 向上取整assertEquals(Math.ceil(6.2), 7, delta);assertEquals(Math.ceil(6.8), 7, delta);assertEquals(Math.round(-6.2), -6, delta); // 四舍五入assertEquals(Math.round(6.2), 6, delta);assertEquals(Math.round(6.8), 7, delta);assertEquals(Math.round(-6.5), -6, delta);assertEquals(Math.round(6.5), 7, delta);assertEquals(Math.rint(-6.2), -6, delta); // 最接近整數(shù),如果存在兩個(gè),返回偶數(shù)assertEquals(Math.rint(6.2), 6, delta);assertEquals(Math.rint(6.8), 7, delta);assertEquals(Math.rint(-6.5), -6, delta);assertEquals(Math.rint(6.5), 6, delta);assertEquals(Math.floorDiv(7, 3), 2);assertEquals(Math.floorDiv(-7, 3), -3);assertEquals(Math.floorMod(7, 3), 1);assertEquals(Math.floorMod(-7, -3), -1);assertEquals(Math.floorMod(-7, 3), 2);assertEquals(-7 % -3, -1);assertEquals(-7 % 3, -1);

三角函數(shù)

assertEquals(Math.sin(Math.PI / 2), 1.0, delta);assertEquals(Math.cos(Math.PI), -1, delta);assertEquals(Math.tan(Math.PI / 4), 1.0, delta);assertEquals(Math.asin(1), Math.PI / 2, delta);assertEquals(Math.acos(-1), Math.PI, delta);assertEquals(Math.atan(1), Math.PI / 4, delta);

指數(shù)對(duì)數(shù)

pow(x, y): x^y,x 的 y 次方  sqrt(x): √x,x 的平方根  cbrt(x): 三次方根  hypot(x, y): √(x² + y²)  exp(x): e ^ x  expm1(x): e ^ x - 1  log(x): ln(x)  log10: lg(x)  log1p(x): ln(1+x)

assertEquals(Math.pow(3, 2), 9, delta);assertEquals(Math.pow(2, 3), 8, delta);assertEquals(Math.sqrt(4), 2, delta);assertEquals(Math.cbrt(27), 3, delta);assertEquals(Math.hypot(3, 4), 5, delta);  // √(x² + y²)assertEquals(Math.exp(2.5), Math.pow(Math.E, 2.5), delta); // e ^ xassertEquals(Math.expm1(2), Math.exp(2) - 1, delta);  // e ^ x - 1assertEquals(Math.log(Math.exp(1.5)), 1.5, delta); // ln(x)assertEquals(Math.log10(1000), 3, delta);      // lg(x)assertEquals(Math.log1p(Math.E - 1), 1, delta);   // ln(1 + x)

雙曲函數(shù)

sinh(x): (e ^ x - e ^ -x) / 2  cosh(x): (e ^ x + e ^ -x) / 2  tanh(x): sinh(x) / cosh(x)

assertEquals(Math.sinh(2), (Math.exp(2) - Math.exp(-2)) / 2, delta);  // sinh(x) = (e ^ x - e ^ -x) / 2assertEquals(Math.cosh(2), (Math.exp(2) + Math.exp(-2)) / 2, delta);  // cosh(x) = (e ^ x + e ^ -x) / 2assertEquals(Math.tanh(2), Math.sinh(2) / Math.cosh(2), delta);     // tanh(x) = sinh(x) / cosh(x)

精確計(jì)算

普通的數(shù)值計(jì)算在溢出時(shí)是沒有感知的,比如 Long.MAX_VALUE + 1 將得到結(jié)果 Long.MIN_VALUE,為了解決這種不合理,Math 提供了一些輔助函數(shù),在結(jié)果溢出時(shí)將拋出異常

addExact(x, y): 加法  multiplyExact(x, y): 乘法  decrementExact(x, y): 遞減  incrementExact(x, y): 遞增  negateExact(x, y): 相反數(shù)  multiplyFull(x, y): 接受兩個(gè) int 返回一個(gè) long,防止溢出  multiplyHigh(x, y): 返回兩個(gè) long 乘積的高 64 位

assertEquals(Long.MAX_VALUE + 1, Long.MIN_VALUE);                    // 溢出assertThrows(ArithmeticException.class, () -> Math.addExact(Long.MAX_VALUE, 1));    // 加法溢出拋異常assertThrows(ArithmeticException.class, () -> Math.multiplyExact(Long.MAX_VALUE, 2));  // 乘法assertThrows(ArithmeticException.class, () -> Math.decrementExact(Long.MIN_VALUE));   // 遞減assertThrows(ArithmeticException.class, () -> Math.incrementExact(Long.MAX_VALUE));   // 遞增assertThrows(ArithmeticException.class, () -> Math.negateExact(Long.MIN_VALUE));    // 相反數(shù)assertEquals(Math.addExact(1, 2), 3);assertEquals(Math.multiplyExact(2, 3), 6);assertEquals(Math.incrementExact(6), 7);assertEquals(Math.decrementExact(6), 5);assertEquals(Math.negateExact(-6), 6);assertEquals(Math.multiplyFull(1, 2), 2);  // 接受兩個(gè) int 返回一個(gè) long,防止溢出assertEquals(Math.multiplyHigh(1, 2), 0);  // 返回兩個(gè) long 乘積的高 64 位

浮點(diǎn)數(shù)

任意兩個(gè)浮點(diǎn)數(shù)之間都有無數(shù)個(gè)浮點(diǎn)數(shù),因此大部分浮點(diǎn)數(shù)是無法表示的,只能選取一個(gè)最接近的,java 提供了一些接口來獲取能表示的浮點(diǎn)數(shù)

System.out.println(Math.nextUp(1.1));  // 下一個(gè)浮點(diǎn)數(shù)System.out.println(Math.nextDown(1.1)); // 上一個(gè)浮點(diǎn)數(shù)System.out.println(Math.nextAfter(1.1, Double.POSITIVE_INFINITY));  // 下一個(gè)浮點(diǎn)數(shù)System.out.println(Math.nextAfter(1.1, Double.NEGATIVE_INFINITY));  // 上一個(gè)浮點(diǎn)數(shù)

隨機(jī)數(shù)

math 庫隨機(jī)數(shù)

System.out.println(Math.random());     // 0 ~ 1 之間的隨機(jī)數(shù)

java.lang.Random

Random 類提供了更豐富的隨機(jī)方法,可以返回各種不同類型的隨機(jī)數(shù)

Random r = new Random();System.out.println(r.nextInt());System.out.println(r.nextLong());System.out.println(r.nextFloat());System.out.println(r.nextDouble());

Random 還提供了流式 api

Random r = new Random();List li = r.ints().limit(10).boxed().map((x) -> Math.abs(x % 100)).collect(Collectors.toList());System.out.println(li);

java.util.Random 是線程安全的,但是,跨線程的同時(shí)使用 java.util.Random 實(shí)例可能會(huì)遇到爭用,從而導(dǎo)致性能下降。在多線程設(shè)計(jì)中考慮使用java.util.concurrent.ThreadLocalRandom 代替 java.util.Random,ThreadLocalRandom 和 Random 擁有一致的接口

以上是“java中java.lang.Math庫怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:java中java.lang.Math庫怎么用-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/djopic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部