java Math类中的pow方法

作者&投稿:闳熊 (若有异议请与网页底部的电邮联系)
JAVA math 方法里面mathpow错误~

Math.pow方法是2个参数的,你后面那个只传了一个参数进去,所以报异常了。

Math.pow(double a, double b)
是求a的b次方的

Math.pow(64,1/3)等价于 Math.pow(64,0)所以结果是1.0

在程序中 1/3并不代表三分之一,因为这里是两个int类型在做除法,结果也是int类型,会自动取整(向下取0了), 所以是0,就可以说明为什么结果是1。执行代码如下

System.out.println(1/3)

运行结果

当然如果使用Math.pow(64,1.0/3.0)结果也不是4,代码如下

System.out.println(Math.pow(64,1.0/3.0))

结果如下

这里1.0/3.0近似等于0.3333333333所以,最后结果为上图所示。

拓展知识

1.0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数做除法运算,则商位Float或者Double类型

2.0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候



1/3计算机默认值是0,两个参数的值都应该是double 型
返回第一个参数的第二个参数次幂的值。特殊情况如下:
如果第二个参数为正 0 或负 0,那么结果为 1.0。
如果第二个参数为 1.0,那么结果与第一个参数相同。
如果第二个参数为 NaN,那么结果为 NaN。
如果第一个参数为 NaN,第二个参数非 0,那么结果为 NaN。
如果
第一个参数的绝对值大于 1,并且第二个参数为正无穷大,或者
第一个参数的绝对值小于 1,并且第二个参数为负无穷大,
那么结果为正无穷大。
如果
第一个参数的绝对值大于 1,并且第二个参数为负无穷大,或者
第一个参数的绝对值小于 1,并且第二个参数为正无穷大,
那么结果为正 0。
如果第一个参数的绝对值等于1,并且第二个参数为无穷大,那么结果为 NaN。
如果
第一个参数为正 0,并且第二个参数大于 0,或者
第一个参数为正无穷大,并且第二个参数小于 0,
那么结果为正 0。
如果
第一个参数为正 0,并且第二个参数小于 0,或者
第一个参数为正无穷大,并且第二个参数大于 0,
那么结果为正无穷大。
如果
如果第一个参数为负 0,并且第二个参数大于 0 但不是有限的奇数整数,或者
第一个参数为负无穷大,并且第二个参数小于 0 但不是有限的奇数整数,
那么结果为正 0。
如果
第一个参数为负 0,并且第二个参数为正的有限奇数整数,或者
第一个参数为负无穷大,并且第二个参数为负的有限奇数整数,
那么结果为负 0。
如果
如果第一个参数为负 0,并且第二个参数小于 0 但不是有限的奇数整数,或者
第一个参数为负无穷大,并且第二个参数大于 0 但不是有限的奇数整数,
那么结果为正无穷大。
如果
第一个参数为负 0,并且第二个参数为负的有限奇数整数,或者
第一个参数为负无穷大,并且第二个参数为正的有限奇数整数,
那么结果为负无穷大。
如果第一个参数为小于 0 的有限值,
如果第二个参数为有限的偶数整数,那么结果等于第一个参数绝对值的第二个参数次幂的结果。
如果第二个参数为有限的奇数整数,那么结果等于负的第一个参数绝对值的第二个参数次幂的结果。
如果第二个参数为有限的非整数值,那么结果为 NaN。
如果两个参数都为整数,并且结果恰好可以表示为一个 double 值,那么该结果恰好等于第一个参数的第二个参数次幂的算术结果。
(在前面的描述中,当且仅当浮点数为有限值并且是方法 ceil 的定点数,或者是方法 floor 的定点数时,才可以认为浮点值是整数。当且仅当将某个单参数方法应用到某个值的结果等于该值时,该值才是这个方法的定点值。)

我们知道static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值。可是这里的1/3计算机在计算时输出的结果为0,所以 Math.pow(64,1/3)就会等于1

Math.pow(64,1/3)代码的意思是64的3分之一平方,1/3的结果=0,如果要取小数改成1.0/3.0

问题出在1/3,因为1和3都是int类型,在java中直接运算1/3相当于运算(int)1/3=0,所以你的Math.pow(64,1/3)相当于Math.pow(64,0),64的0次方,其结果就只能为1。


临潼区19434035939: JAVA中算式的次方怎样表达 -
逯筠忆复: Math.pow(a,b); a的b次方 记住 a 和 b都是double类型 同样结果也是double类型

临潼区19434035939: java中如何表示a的b次方 -
逯筠忆复: java中乘方用Math.pow来实现,举例如下:public static void main(String[] args) {int a=2; /*底数*/int b=3; /*乘方*/double f=Math.pow(a,b); /*a和b套用到此行的程式(a的b次方等於f)*/System.out.println(“2的3次方等於”+f); }

临潼区19434035939: Java中怎样怎样算出求函数的幂次方? -
逯筠忆复: java中通常进行数学运算的东西都在Math类中,例如你这个就是 Math类中的pow方法,是个静态方法,你直接用类名调用就行,比如求5的6次幂,那就是Math.pow(5,6),其他的数学方法可以参考一下API

临潼区19434035939: 用Java求13的13次方的最后三位数. -
逯筠忆复: 你好 在java里面有个Math类,里面有一个方法pow(double d1,double d2),返回d1的d2次方值 例如你说的问题:public class Test { public static void main(String args[]){double a=Math.pow(13, 13);String str=String.valueOf(a);System.out.println(str.substring(str.length()-3,str.length()));} }

临潼区19434035939: java中,要求一个数的多次平方怎么写? -
逯筠忆复: Math.pow(10,10); 以下是math包中pow方法的中文api public static double pow(double a, double b)返回第一个参数的第二个参数次幂的值.特殊情况是: 如果第二个参数是正零或负零,那么结果是 1.0. 如果第二个参数是 1.0,那么结果与第一...

临潼区19434035939: java 数学公式 -
逯筠忆复: 这个公式不复杂啊,统共就会用到Math里面的求次方的pow函数了.因为这个属于java.lang包下的,调用方法就是Math.pow(a,b),相当于a^b了.当然是一步一步算了,Java不是matlab,还不支持符号运算.double的精度应该够你用了,如果要...

临潼区19434035939: Java里有没有乘方运算符?比如我想算59的95次方,怎么实现? -
逯筠忆复: java里面算乘方可以用Math类的pow方法java.lang.Math.pow(double a, double b)即返回a的b次方,示例如下:public class MathDemo { public static void main(String[] args) { double x = 59; double y = 95; System.out.println(x + " 的 " + y + " 次方是: " + Math.pow(x, y)); System.out.println(y + " 的 " + x + " 次方是: " + Math.pow(y, x)); }}

临潼区19434035939: java问题 -
逯筠忆复: 在Java.lang.Math类中有个pow(double a, double b)返回第一个参数的第二个参数次幂的值.你可以申明一个变量为double d = Math.pow(10,20); 也可以为long l = (long).Math.pow(10,20);

临潼区19434035939: java 幂运算如何表示 -
逯筠忆复: Math类中的pow(double m,double n)方法 比如4^3可以写为 double a=Math.pow(4,3); 则a就是结果

临潼区19434035939: 用JAVA编写一个圆柱体类,包含求体积的方法.声称一个圆柱体对象,并求这个圆柱体的体积 -
逯筠忆复: 圆柱体体积公式:V=πr²h. java中的Math类中提供了π常量: public static final double PI = 3.14159265358979323846;可以直接使用. 求平方,可以使用Math.pow(r, 2)方法完成,也可以写成r*r. 指定圆柱的半径和高度,即可求出体积. ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网