Я пытаюсь сделать простой вызов программирования, и я сталкиваюсь с причудливой и несвязанной проблемой с функцией Math.pow().Java's 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^1 и выводит 6 прекрасно –
Да, так вопрос почему он дает мне 54 на линии выше, когда значения внутри также 6 и 1 – leigero
это также поможет лучше, если вы загрузите содержимое файла ur –