У меня есть программа, в которой я генерирую два двойных числа, добавляя несколько входных цен из файла на основе условия.
String str;
double one = 0.00;
double two = 0.00;
BufferedReader in = new BufferedReader(new FileReader(myFile));
while((str = in.readLine()) != null){
if(str.charAt(21) == '1'){
one += Double.parseDouble(str.substring(38, 49) + "." + str.substring(49, 51));
}
else{
two += Double.parseDouble(str.substring(38, 49) + "." + str.substring(49, 51));
}
}
in.close();
System.out.println("One: " + one);
System.out.println("Two: " + two);
Вывод похож на:
One: 2773554.02
Two: 6.302505836000001E7
Вопрос:
Ни один из входных данных не содержит более двух десятичных знаков. То, как один и два рассчитываются точно так же.
Тогда почему формат вывода такой:
Я ожидаю:
One: 2773554.02
Two: 63025058.36
Почему печать выполняется в двух разных форматах? Я хочу снова записать результаты в файл, и после десятичной точки должно быть только две цифры.