У меня есть целое число, которое я делю на 100, отображая результат на экране, из которого я могу получить вывод, например:
91,32
5,22
11,5
Мне всегда нужно иметь два десятичных знака, поэтому я заполняю нулями, если у меня есть только 1, чтобы получить, например:
91,32
5,22
11,50
Чтобы получить десятичные дроби, я преобразовываю исходное целое число в число с плавающей запятой, то есть делаю что-то вроде этого:
int i = 150;
float res, f = (float) i;
res = f / 100;
System.out.println( res );
Отредактировано: для ясности я собираюсь использовать его в программе, которая показывает вывод следующим образом:
Contenido total: 126,59€
Hay 49 monedas de 1 cent. Con un valor de: 0,49€
Hay 45 monedas de 2 cent. Con un valor de: 0,90€
Hay 10 monedas de 5 cent. Con un valor de: 0,50€
Hay 14 monedas de 10 cent. Con un valor de: 1,40€
Hay 39 monedas de 20 cent. Con un valor de: 7,80€
Hay 13 monedas de 50 cent. Con un valor de: 6,50€
Hay 27 monedas de 100 cent. Con un valor de: 27,00€
Hay 41 monedas de 200 cent. Con un valor de: 82,00€
Хоть я и не включил его в вопрос изначально, но целая часть тоже обязательна, даже если она имеет значение 0, то есть ,40
она была бы недействительна, требовала бы: 0,40
.
Вы можете использовать этот формат:
или также:
таким образом, вы всегда будете получать 2 десятичных знака.
Вы можете использовать вышеуказанное в методе:
Например, если мы определим эти значения:
Используя полученный метод:
посмотреть онлайн-демонстрацию
Как упоминалось ранее, вы можете использовать
DecimalFormat
, но это также можно сделать непосредственно с классомString
.Вывод, который я получаю в обоих случаях,
Поэтому я заменил запятую на точку.
Получение результата с точкой вместо запятой.
Попробуй это: