Я пытаюсь решить простую задачу по программированию, и у меня возникает странная и не связанная с этим проблема с функцией 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