java - Java 大数的数计算问题
问题描述
我是 Java 新手,当我试图在没有 Math.pow 方法的情况下找到数字的幂时,我意识到答案不正确。我想知道为什么?
public class Main() {
int x = 1919;
int y = x*x*x*x;
public static void main(String[] args) {
System.out.println(y);
}
}
输出:2043765249
但通常答案是:13561255518721
解决方案
你使用 int 作为答案,你得到一个数字溢出。
使用 double 或 long 或 BigInteger for y
,你会得到正确的答案。
public class Main {
public static void main(String[] args) {
System.out.println(Math.pow(1919, 4));
System.out.println((double) 1919*1919*1919*1919);
}
}
输出相同的值。
推荐阅读
- azure - 是否可以(通过不同的支持)将 Azure 驱动器附加到 Azure 应用服务实例?
- c++ - 这两个条件有何不同?
- javascript - Javascript:如何将“选定”分配给“选项”元素
- javascript - javascript错误说array.some不是一个函数
- c++ - 如何在两个整数之间找到斐波那契数?
- python - 为什么选择列的“重命名”不能与 lambda 函数一起使用?
- pandas - 索引 csv 文件时 for 循环如何工作?
- swift - iOS 相机 CPU 使用率
- c# - 我正在尝试在 y 轴上设置我的精灵位置,但由于某种原因它保留了 0 位置
- ruby-on-rails - 使用 RVM 安装 Ruby 时如何修复错误?