java - double 值足够大会在 Java 中返回错误

标签 java type-conversion

我基本上是在玩数据类型来学习java,这就是我感到困惑的地方。

double douVar = 30000000000.323262342134353;
int intVar = (int)douVar; // casting
System.out.println(intVar); 

现在将 douVar 转换为字符串,我覆盖 double 变量:

douVar = 345839052304598; // returns an error: Integer number too long
System.out.println(Double.toString(douVar));

完全错误:

Error:(20, 18) java: integer number too large: 345839052304598

我正在使用 IntellijIDEA 编译器。我没有在 eclipse 上尝试这个,但我认为编译器不会有太大不同。 这是否意味着转换也会导致原始变量被修改?

最佳答案

在 Java 中,不带小数的常量默认为整数。 有两种方法可以将常量定义更改为 double :

  1. 在末尾添加 dD
  2. 在末尾添加 .0
douVar = 345839052304598d;
douVar = 345839052304598.0;

关于java - double 值足够大会在 Java 中返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094642/

相关文章:

java - GWT - 处理同一元素上的双击和单击

c# - 如何转换十进制?到十进制

java - 以编程方式设置共享首选项默认值

java - 我编写了一个具有双 for 循环的字谜查找器 - 如何提高此代码的效率?

java - 如何去掉字符串开头的文本?

java - 小部件的 ScrollView

c# - 将对象列表转换为另一个对象列表

c++ - 转换为具有相同数据成员布局但实现不同的类是否安全?

C++ 列表<T> 到 Python 列表

c++ - 为什么将 '0' 添加到 int 数字允许转换为 char?