乘法后的双值负数-Java

用户750932:

在我的代码中,我有以下一行。

double temp=(c12*fileSize);
  • 这里c12是double,而fileSize是double
  • c12的值为1700,并且
  • fileSize的值为1944038

但是乘法之后我得到了-990102696

有人可以帮我吗?某些尺寸限制出了错吗?

高山:

您的c12和fileSize很可能是整数(+1 Tomasz)。Java将整数乘以整数,该整数溢出并变为负数,然后将该负数存储在您的double中。在乘法之前将c12和fileSize强制转换为两倍:

double c12 = 1700, fileSize = 1944038;
System.out.println(c12 * fileSize);

产生:

3.3048646E9

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章