Я очень новичок в программировании на Java. Мне было дано задание в моей школе, чтобы решить следующее упражнение:Как использовать «BigDecimal» в Java для моего кода?
«Создайте две переменные, каждая из которых содержит число. Положите сообщение, показывающее, как часто второй номер вписывается в первый, а остальные (если таковой имеется ») [Я надеюсь, что формулировка понятна. Я перевожу это из моего родного языка немецкого на английский язык]
Сейчас в общем, я решил упражнение, как это (с использованием Netbeans):
double numberOne = 10, numberTwo = 35.55;
double result, rest;
String conversion, numberOutput;
result = numberTwo/numberOne;
conversion = Double.toString(result);
int indexOfComma = conversion.indexOf(".");
numberOutput = conversion.substring(0, indexOfComma);
rest = numberTwo % numberOne;
System.out.println("The second number fits " + numberOutput +
" times into the first one. The rest is: " + rest);
С номерами, то система выскакивает это сообщение:
«Второе число соответствует 3 раза в первое остальное:. +5,549999999999997»
мне не нравится ошибка округления для остальных. Я ожидал, что он выдаст «5.55», как человек наберет или напишет. После небольшого поиска по всему миру кажется, что что-то, называемое «BigDecimal», является решением моей проблемы, но объяснения, которые я нашел о том, как реализовать это в Java, идут по моей голове.
Не могли бы вы показать мне, где и как мне нужно использовать BigDecimal в приведенном выше коде, чтобы получить желаемый результат? Я также был бы рад увидеть любые альтернативные решения, о которых вы можете подумать.
'BigDecimal' не кажется, отношение к вашей проблеме вообще. Вам просто нужно научиться форматировать выходные данные. – John3136
Мое чтение «вписывается в» - это наоборот. '10' (первый номер) трижды помещается в' 35.55' (второе число). – Andreas
@ John3136 Не могли бы вы уточнить? По моему мнению, формирование только сделало бы его более «красивым», как отрезание только двух последних цифр после запятой, но не помогло бы мне с исправлением ошибки округления. – Kalassar