【问题标题】:cast (int) does not work correctly [duplicate]cast(int)无法正常工作[重复]
【发布时间】:2016-04-02 19:54:58
【问题描述】:

我用Math.pow(10,24) 初始化了一个双重a。 现在我需要将 double a 转换为 int b

a = Math.pow(10,24)
int b = (int)a;
System.out.println(a);
System.out.println(b);

系统打印出来:

1.0E24
2147483647

这个结果显然是不正确的。

【问题讨论】:

  • 谷歌“java整数溢出”
  • BigInteger 是你的朋友,尽管考虑到双精度的限制,即使这样也不会 100% 准确。
  • 10^24 太大,无法放入 int
  • Integer Integer 的最大值是 10^31 -1 还是我错了?

标签: java int double


【解决方案1】:

这是因为整数有限制 INT_MAX - 2147483647

【讨论】:

  • 好的,但是INT_MAX 是什么?在 Java 中,INT_MAX 是在哪里定义的?
  • 但是为什么 INT_MAX 和 MAX_VALUE 不同呢?
  • 您可以在此处阅读有关 int 等原始数据类型的更多信息:Click Here
  • 原始数据类型int,和Integer类不同。
猜你喜欢
  • 1970-01-01
  • 2017-07-15
  • 2015-09-06
  • 2016-05-06
  • 2016-05-12
  • 2018-07-19
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多