2015-04-22 2 views
0

У меня есть String, который представляет собой сумму денег, переданную от ввода, которая будет необязательно содержать десятичную точку и конечные нули. Это может выглядеть, как любой из них:Формат числа, хранящегося в виде строки

inputA = "123.45" 
inputB = "123" 
inputC = "123.4" 
inputD = ".50" 

Есть ли способ, чтобы преобразовать их так, что все они имеют формат 0.00, по крайней мере, одной цифры слева от десятичной точки, а именно два вправо, не имея для преобразования в числовой объект, например BigDecimal, а затем обратно?

+0

Nice !, поделитесь код и скажите нам, где вы застряли – Arvind

+0

Да. Но тогда вы переписали логику, которую Java уже дает вам. Что-то не так с использованием 'double' и' DecimalFormat'? –

+0

Нет, на самом деле это не мой план резервного копирования. Но я бы предпочел не преобразовывать 'String' в' double', а затем обратно в 'String', если я могу помочь. –

ответ

0

хитрости:

String formattedDouble=String.format("%.2f", Double.valueOf(strDouble)); 

И %.2f отформатируется double в 1.00, 0.20 или 5.21. Double.valueOf(strDouble) конвертировать String double в double.

1

Вы можете использовать DecimalFormat для достижения форматирования.

DecimalFormat format = new DecimalFormat("##0.00"); 
System.out.println(format.format(10)); 

Выход: 10,00

Смежные вопросы