首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Math.cbrt()和Math.pow()的区别

Math.cbrt()和Math.pow()的区别
EN

Stack Overflow用户
提问于 2014-06-15 14:04:16
回答 4查看 471关注 0票数 0

为什么Math.cbrt(a)给出的结果与Math.pow(a, (1/3))不同

代码语言:javascript
复制
public class HelloWorld{

 public static void main(String []args){

   int a=8;

   System.out.println(Math.cbrt(a));

   System.out.println(Math.pow(a,(1/3)));
 }
}

解决方案

2.0 1.0

为什么会有差异呢?是我的数学错误,还是语法错误,或者与pow有关?

EN

回答 4

Stack Overflow用户

发布于 2014-06-15 14:09:52

代码语言:javascript
复制
System.out.println(Math.pow(a,(1.0/3.0)));

由于整数运算,1/3将为0,因此您需要转换为double,或者像上面所示那样简单地使用double,以获得所需的结果。

票数 3
EN

Stack Overflow用户

发布于 2014-06-15 14:13:56

在Java中1/3 = 0,因为整型除以整型。如果你使用1/3.0,你在Math.pow中的结果会很好。

票数 1
EN

Stack Overflow用户

发布于 2014-06-15 14:14:00

表达式1/3的计算结果为整数除法,结果为0。然后,pow被调用为pow(8, 0),它正确地返回1。请尝试编写pow(a, (1.0 / 3.0))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24227017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档