此行分
d = w[L] /v[L];几步进行
d = (int)w[L] / (int)v[L]d=(int)(w[L]/v[L]) //the integer result is calculatedd=(double)(int)(w[L]/v[L]) //the integer result is cast to double
换句话说,精度在转换为两倍之前已经消失了,您需要先转换为两倍,所以
d = ((double)w[L]) / (int)v[L];
这迫使Java在整个过程中都使用double数学,而不是使用整数数学,然后在最后转换为double
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)