大double值给java 1.8带来了错误?

时间:2018-07-18 11:31:07

标签: java

下面的代码段对该算术运算给出了1.0E27%10的错误

"ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [util.c:840]

代码是

int []A = {1000000000, 1000000000, 1000000000};
int cnt=0;
double product = 1;
for(int i= A.length-1 ;  cnt < 3; i--,cnt++ ) {
     product*=A[i];
}
System.out.println(product%10); //// 1.0E27%10
while(product%10 == 0) {
    product = product/10;
    zeroCnt++;
}

1 个答案:

答案 0 :(得分:1)

这是old JVM bug,而不是双精度错误。 尝试更新Java或添加

System.exit(0); 

在代码末尾。