在我的代码中,我有以下行.
double temp=(c12*fileSize);
Run Code Online (Sandbox Code Playgroud)
但是在乘法后我得到了-990102696
.
任何人都可以帮助我吗?有些尺寸限制出错吗?
(int)1700 * (int)1944038
等于你的-990102696
.
你确定c12
并且fileSize
不是整数吗?如果是,则乘以整数类型,整数溢出的现象,而且被晋升为double
以后.
您的 c12 和 fileSize 很可能是整数(+1 Tomasz)。Java 将整数相乘,导致溢出,变成负值,然后将该负值存储在双精度值中。在相乘之前将 c12 和 fileSize 转换为 double:
double c12 = 1700, fileSize = 1944038;
System.out.println(c12 * fileSize);
Run Code Online (Sandbox Code Playgroud)
产生:
3.3048646E9
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2208 次 |
最近记录: |