我正在尝试做一个简单的编程挑战,但我遇到了与 Math.pow() 函数无关的奇怪问题。
我得到 6 的 1 次方是 54?
我正在读取在命令行上输入的文件(通过 args[0])。该文件仅包含三个数字:
6
75
153
我正在运行的程序如下:
public static void main (String[] args)throws IOException{
File filename = new File(args[0]);
Scanner file = new Scanner(filename);
while(file.hasNextLine()){
String numbers = file.nextLine();
int numValue = Integer.parseInt(numbers);
int sumOfPowers = 0;
for(int i = 0; i < numbers.length(); i++){
sumOfPowers += Math.pow(numbers.charAt(i), numbers.length());
System.out.println(Math.pow(numbers.charAt(i), numbers.length()));
System.out.println(Math.pow(6, 1));
}
}
file.close();
}
生成的输出是奇数。基于这些类型的值创建幂函数是否违反 Java 规则?
我得到的输出:
54.0
6.0
3025.0
6.0
2809.0
6.0
117649.0
6.0
148877.0
6.0
132651.0
6.0
最佳答案
我认为这里主要的误解是 '6'
!= 6
如果它们是相同的,你就不需要有不同的文字。相反,'6'
的 ASCII 为 (int) '6'
或 54
。
关于Java 的 Math.pow() 在简单情况下产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203092/