0

当我尝试将 2 个 int 值相乘时,我不知道为什么此代码片段会产生以下输出。这可能太愚蠢了,但我就是不明白。我在这里粘贴了代码和输出

public static void main(String[] args) {
    // TODO code application logic here
    String numstring = "12122";
    char[] numArray = numstring.toCharArray();
    int num =0;
    int index = 10;
    int count = 0;
    for(int i=numArray.length-1;i>=0;i--){
      int ind = (int)(Math.pow(index,count));
      System.out.print(numArray[i]+"*"+ind);
      System.out.println(" prints as ----->"+numArray[i]*ind);
      count++;
    }
}

输出:

    2*1 prints as ----->50
    2*10 prints as ----->500
    1*100 prints as ----->4900
    2*1000 prints as ----->50000
    1*10000 prints as ----->490000
4

2 回答 2

1

你不是乘以两个整数。int您将 a , ind与 a char,相乘'2',其 ASCII 值为50(至少在第一种情况下)。您可以使用int[],或者如果您想坚持使用char[],您可以执行以下操作:

System.out.println(" prints as ----->"+ Character.getNumericValue(numArray[i]) * ind);
于 2013-06-23T22:58:43.390 回答
0

字符实际上是整数,例如,字符 '2' 的 int 值为 50。

要查看哪个整数对应哪个字符,请查看ascii 表

做你想做的事,你应该使用Character.getNumericValue()方法:

System.out.println(" prints as ----->"+Character.getNumericValue(numArray[i])*ind);
于 2013-06-23T22:58:14.477 回答