Я пытаюсь получить int, который всегда является числом с 2 десятичными знаками. Ед.:Создание десятичного числа без десятичного разделителя
- 1000 - 10,00 (мой разделитель десятичной запятой - запятая).
- 100 является 1,00
- 0 0,00
- 100099 является 1.000,99
Так что я пытаюсь избегать использования Строковых операторов и использовать DecimalFormat с рисунком 0,00 и немецкий язык.
Но когда я получаю 10004, вывод, что я получаю это 1.00.04
Это мой код:
public static String formatDecimal(double number) {
//String pattern = "#,00";
String pattern = "0,00";
DecimalFormat fN = (DecimalFormat) NumberFormat.getNumberInstance(Locale.GERMAN);
fN.applyPattern(pattern);
return fN.format(number)
}
почему бы вам не попробовать '(с плавающей точкой) переменной/100'? – Saidolim
Я не думаю, что вы можете сжать символ десятичного разделителя до двух последних символов. Я бы не использовал арифметику с плавающей запятой из-за проблем округления. Используйте BigDecimal или 'intPart = number/100;' и 'fracPart = число% 100' и печатайте их как два целых числа, разделенных точкой с запятой. – aioobe
Да, я пробовал это уже ... точка в том, что мне нужен десятичный и тысячный разделитель ... и ваши советы имеют другое поведение, когда данные имеют одну цифру или больше (потому что я реферат непосредственно как NUMBER из базы данных .. .когда 0, я должен показать 0,00 (1 - 1,00 - 99 - 0,99 - 123 - 1,23), а цифры, такие как 123456, - 1,234,56 ... –