这个把十六进制转十进制的方法哪里错了?是Math.pow这里吗?(输入AB8C测试得到269964.0)
import java.util.Locale;
import java.util.Scanner;
public class Hex2Decimal {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
char[] hex=sc.nextLine().toUpperCase(Locale.ROOT).toCharArray();
int exp=hex.length;
double decimal=0;
for (int i=0;i<exp;i++){
char M=hex[exp-1-i];
System.out.println("M="+M);
boolean b = M >= 'A' && M <= 'F';
if(M>'A'&&M<'F'){
M=(char)(M+10-'A');
// System.out.println("M="+M);
}
decimal=decimal+M*Math.pow(16,i);
System.out.println("decimal="+decimal);
}
System.out.println(decimal);
}
}