文档章节

java.lang.Math.pow 释义

小紅
 小紅
发布于 2015/04/20 16:21
字数 1651
阅读 35
收藏 0

今天遇到一个prod issue,计算PPL的时候结果为NaN,顺着找代码,发现Math.pow还挺有意思,就把case都理了一遍,记录下。

先上JDK Doc:

pow
public static double pow(double a,
         double b)
Returns the value of the first argument raised to the power of the second argument. Special cases:
(In the foregoing descriptions, a floating-point value is considered to be an integer if and only if it is finite and a fixed point of the method ceil or, equivalently, a fixed point of the method floor. A value is a fixed point of a one-argument method if and only if the result of applying the method to the value is equal to the value.)
The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.
Parameters:
a - the base.
b - the exponent.
Returns:
the value ab.
if the second argument is a finite even integer, the result is equal to the result of raising the absolute value of the first argument to the power of the second argument
if the second argument is a finite odd integer, the result is equal to the negative of the result of raising the absolute value of the first argument to the power of the second argument
if the second argument is finite and not an integer, then the result is NaN.
the first argument is negative zero and the second argument is a negative finite odd integer, or
the first argument is negative infinity and the second argument is a positive finite odd integer,
the first argument is negative zero and the second argument is less than zero but not a finite odd integer, or
the first argument is negative infinity and the second argument is greater than zero but not a finite odd integer,
the first argument is negative zero and the second argument is a positive finite odd integer, or
the first argument is negative infinity and the second argument is a negative finite odd integer,
the first argument is negative zero and the second argument is greater than zero but not a finite odd integer, or
the first argument is negative infinity and the second argument is less than zero but not a finite odd integer,
the first argument is positive zero and the second argument is less than zero, or
the first argument is positive infinity and the second argument is greater than zero,
the first argument is positive zero and the second argument is greater than zero, or
the first argument is positive infinity and the second argument is less than zero,
the absolute value of the first argument is greater than 1 and the second argument is negative infinity, or
the absolute value of the first argument is less than 1 and the second argument is positive infinity,
the absolute value of the first argument is greater than 1 and the second argument is positive infinity, or
the absolute value of the first argument is less than 1 and the second argument is negative infinity,
If the second argument is positive or negative zero, then the result is 1.0.
If the second argument is 1.0, then the result is the same as the first argument.
If the second argument is NaN, then the result is NaN.
If the first argument is NaN and the second argument is nonzero, then the result is NaN.
Ifthen the result is positive infinity.
Ifthen the result is positive zero.
If the absolute value of the first argument equals 1 and the second argument is infinite, then the result is NaN.
Ifthen the result is positive zero.
Ifthen the result is positive infinity.
Ifthen the result is positive zero.
Ifthen the result is negative zero.
Ifthen the result is positive infinity.
Ifthen the result is negative infinity.
If the first argument is finite and less than zero
If both arguments are integers, then the result is exactly equal to the mathematical result of raising the first argument to the power of the second argument if that result can in fact be represented exactly as a double value.

再上中文释义:

pow
public static double pow(double a,
                         double b)
返回第一个参数的第二个参数次幂的值。特殊情况如下:
如果第二个参数为正 0 或负 0,那么结果为 1.0。
如果第二个参数为 1.0,那么结果与第一个参数相同。
如果第二个参数为 NaN,那么结果为 NaN。
如果第一个参数为 NaN,第二个参数非 0,那么结果为 NaN。
如果那么结果为正无穷大。
第一个参数的绝对值大于 1,并且第二个参数为正无穷大,或者
第一个参数的绝对值小于 1,并且第二个参数为负无穷大,
如果那么结果为正 0。
第一个参数的绝对值大于 1,并且第二个参数为负无穷大,或者
第一个参数的绝对值小于 1,并且第二个参数为正无穷大,
如果第一个参数的绝对值等于1,并且第二个参数为无穷大,那么结果为 NaN。
如果那么结果为正 0。
第一个参数为正 0,并且第二个参数大于 0,或者
第一个参数为正无穷大,并且第二个参数小于 0,
如果那么结果为正无穷大。
第一个参数为正 0,并且第二个参数小于 0,或者
第一个参数为正无穷大,并且第二个参数大于 0,
如果那么结果为正 0。
如果第一个参数为负 0,并且第二个参数大于 0 但不是有限的奇数整数,或者
第一个参数为负无穷大,并且第二个参数小于 0 但不是有限的奇数整数,
如果那么结果为负 0。
第一个参数为负 0,并且第二个参数为正的有限奇数整数,或者
第一个参数为负无穷大,并且第二个参数为负的有限奇数整数,
如果那么结果为正无穷大。
如果第一个参数为负 0,并且第二个参数小于 0 但不是有限的奇数整数,或者
第一个参数为负无穷大,并且第二个参数大于 0 但不是有限的奇数整数,
如果那么结果为负无穷大。
第一个参数为负 0,并且第二个参数为负的有限奇数整数,或者
第一个参数为负无穷大,并且第二个参数为正的有限奇数整数,
如果第一个参数为小于 0 的有限值,
如果第二个参数为有限的偶数整数,那么结果等于第一个参数绝对值的第二个参数次幂的结果。
如果第二个参数为有限的奇数整数,那么结果等于负的第一个参数绝对值的第二个参数次幂的结果。
如果第二个参数为有限的非整数值,那么结果为 NaN。
如果两个参数都为整数,并且结果恰好可以表示为一个 double 值,那么该结果恰好等于第一个参数的第二个参数次幂的算术结果。
(在前面的描述中,当且仅当浮点数为有限值并且是方法 ceil 的定点数,或者是方法 floor 的定点数时,才可以认为浮点值是整数。当且仅当将某个单参数方法应用到某个值的结果等于该值时,该值才是这个方法的定点值。)
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
参数:
a - 底数。
b - 指数。
返回:
值 ab。

计算实例太长,下一篇显示





© 著作权归作者所有

共有 人打赏支持
小紅

小紅

粉丝 13
博文 42
码字总数 30456
作品 0
塘沽
程序员
java.lang.Math.pow 实例

先上实例: System.out.println(Math.pow(1d, 0) + " If the second argument is positive or negative zero, then the result is 1.0."); System.out.println(Math.pow(1d, -0) + " If the s......

小紅
2015/04/20
0
0
2017.11.21-学习笔记 :基本功之操作数组array

操作数组的基本方法 老师说,这是基本功,就和练武的马步一样! →点我去看基本的字符串方法 →点我去看ES5新增的数组方法 1.push() 1.释义:向数组的末尾添加内容; 2.参数:一个或多个元素...

演员小新
2017/11/21
0
0
2017.11.23-学习笔记 :基本功之操作字符串String

操作字符串的基本方法 老师说,这是基本功,就和练武的马步一样! →点我去看ES6新增的字符串方法 →点我去看基本的数组方法 →点我去看ES5新增的数组方法 1.charAt 1.释义:返回在指定位置的...

演员小新
2017/11/23
0
0
ADO.NET常用方法释义

先列个列表,下面的就是常用的数据库操作的方法。 ExecuteNonQuery 释义:对链接执行的SQL语句,并返回受影响的行数(注意:用它来执行目录操作,如查询数据库的结构,创建表等数据库对象,或...

郭璞
2015/12/18
0
0
与Android应用程序相关的文件目录都有哪些?

一、方法介绍: 每个Android应用程序都可以通过Context来获取与应用程序相关的目录,这些目录的功能各异,每一个目录都有自己的特点,有时候可能会搞混淆,本文结合android源码注释和实际操作...

Jonson
2016/04/26
27
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部