Я пытаюсь использовать DecimalFormat для преобразования десятичного разделителя в двойное значение, сохраняя при этом все десятичные дроби исходного числа. DecimalFormatter принимает шаблон в формате: "0. ##", например. Поскольку мне приходится использовать числа с разными десятичными знаками, это не сработает, поскольку в шаблоне всегда нужно указывать количество десятичных знаков.
Я ищу способ обойти это.
Я пробовал String.format. DecimaFormatter и NumberFormatter
В идеале я хотел бы что-то вроде:
private static final ThreadLocal< DecimalFormat > formatter = new ThreadLocal< DecimalFormat >()
{
@Override
protected DecimalFormat initialValue()
{
// n should be any number of decimals without having to specify them.
return new DecimalFormat("0.0#n");
}
};
Некоторые примеры:
DecimalFormat df = new DecimalFormat("0.0##");
System.out.println(df.format(2.456))
System.out.println(df.format(2.1));
Результат:
2,456 -> Good
2,100 -> Not good
Я хочу установить шаблон / регулярное выражение, которое будет работать для двойных чисел любого числа после десятичного разделителя, например:
2,456 -> Good
2,1 -> Good
3,3453456345234 -> Good