【发布时间】:2015-09-13 18:29:48
【问题描述】:
我试图在 java 中使用 Math.pow(n, 1.0/3) 获得三次方根,但因为它除以双精度数,它不会返回确切的答案。例如,对于 125,这给出 4.9999999999。有解决办法吗?我知道有一个三次根函数,但我想解决这个问题,以便计算更高的根。
我不想四舍五入,因为我想通过执行以下操作来知道一个数字是否具有整数根:Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3))。
【问题讨论】:
-
使用 BigDecimal 类,它是任意精度的实数的十进制表示。
-
BigDecimal 类中当然没有计算第 n 个根的方法。所以你需要自己实现它。我会给牛顿拉夫森方法一个机会。见here。
标签: java math double decimal nth-root