java 核心技术-12版 卷Ⅰ- 3.5.2 数学函数与常量-媳妇的诱惑漫画

原文

Math类中包含你可能用到的各种数学函数,这取决于你要编写什么类型的程序。

要想计算一个数的平方根,可以使用sqrt方法:

double x =4;

double y = Math.sqrt(x);

System.out.println(y) ;// prints 2.0

注释:println方法和sqrt方法有一个微小的差异。println方法处理System.out对象,而在Math类中的sqrt方法并不处理任何对象,这样的方法被称为静态方法(static mathed)。有关静态方法的详细内容请参见第4章。

在Java中,没有完成幂运算的运算符,因此必须使用Math类的pow方法。以下语句:

double y=Math.pow(x,a);

将y的值设置为x的a次幂(xa)。pow方法有两个double类型的参数,其返回结果也为double类型。

floorMod方法是为了解决一个长期存在的有关整数余数的问题。考虑表达式n%2。所有人都知道,如果n是偶数,这个表达式为0;如果n是奇数,结果为1 。当然,除非n是负奇数,此时为-1。为什么呢?设计最早的计算机时,必须有人制定规则,明确整数除法和求余操作对负数操作数该如何处理。数学家们几百年来都知道这样一个最优原则(或称“欧几里得规则”):余数最要>=0。不过,最早制定规则的人并没有翻开数学书好好研究,而是提出了一些看似合理,但实际上很不方便的规则。

下面考虑这样一个问题:计算一个时钟时针的位置。这里要做一个调整,你想归一化为0~11之间的数。这很简单:(position + adjustment)%12 。不过,如果这个调整为负数会怎么样呢?你可能会得到一个负数。所以要引入一个分支,或者使用((position+adjustment)%12)%12。不管怎样都很麻烦。

floorMod方法就让这个问题变得容易了:floorMod(position+adjustment,12)总会得到一个0~11之间的数。(遗憾的是,对于负除数,floorMod会得到负数结果,不过这种情况在实际中不常出现。)

Math类提供了一些常用的三角函数:

Math.sin Math.cos Math.tan Math.atan Math.atan2

还提供了指数函数以及它的反函数——自然对数和以10为底的对数:Mathi.exp Math.log Math.log10

最后还提供了两个常量来表示π和e常量最接近的近似值:Math.PI Math.E

提示:不必在数学方法名和常量名前添加前缀 Math,只要在源文件最上面加上下面这行代码就可以了。

import static java.lang.Math.*;

例如: System.out.println(“The square root of \03C0 is ”+ sqrt(PI));

第4章中将讨论静态导入。

注释:在Math 类中,为了达到最佳的性能,所有的方法都使用计算机浮点单元中的例程。如果得到一个完全可预测的结果比运行速度更重要的话,就应该使用StrictMath类。它实现了“可自由分发数学库(Freely Distributable Math Library, FDLIBM)” (www.netlib.org/fdlibm) 的算法,确保在所有平台上得到相同的结果。

注释:Math类提供了一些方法使整数运算更安全。如果一个计算溢出,数学运算符只是悄悄地返回错误的结果而不做任何提醒。例如,10亿乘以3(10_0000_0000*3)的计算结果将是-1294967296,因为最大的int值也只是刚刚超过20亿。不过,如果调用Math.multiplyExact(10_0000_0000,3),就会生成一个异常。你可以捕获这个异常或者让程序终止,而不是允许它给出一个错误的结果然后悄无声息地继续运行。另外,还有一些方法(addExact、subtractExact、incrementExact、decrementExact、negateExact、absExact)也可以正确地处理 int 和 long 参数。

【Momokun】 Mitsuri [22P 90MB]
2023-03-20
List:01. Carrie Soto Is Back by Taylor Jenkins Reid02. Solito by Javier Zamora03. Fairy Tale by Stephen King04. The Fortunes of Jaded Women by Carolyn Huynh05. How Not to Drown in a Glass of Water by Angie Cruz06. The Two Lives of Sara by Catherine A
2022-10-01
【KittyKlaw】 Chloe [31P 64MB]
2023-06-12
「小须须」香车美人 [22P-136MB]
2023-06-09
[Shooting Stars(サク)] 蒼-03
2021-05-26
No.5906 laura阿姣[92P/621M]
2023-06-10
震撼!EVA×新哥斯拉×新假面骑士×新奥特曼合体新玩具公开。
2023-05-21
「习呆呆」和泉纱雾 #情色漫画老师
2021-05-31
【Shirogane-sama】 Seraphine Xmas [39P 48MB]
2022-12-19
(C96)[girlfriend end(JILL)]つれない神絵師の育てかた05_natsu_room
2021-07-02