そのため、単純な 2 進数から 10 進数へのスクリプトに取り組んでいたところ、累乗で乗算すると精度が失われる可能性があるというエラーが発生しました。これが問題のコード ブロックです。バイナリの 1 と 0 を 2 倍して、文字列の長さからループの反復回数を引いた値を掛けるだけです。次に、その結果を z に加算し、繰り返します。
public int decimal(String x){
int z=0;
for(int a=0;a<x.length();a++){
z=z+Integer.parseInt(x.substring(a,a+1))*Math.pow(2,x.length()-a);
}
return z;
}