2015-09-09 4 views
0

Я получаю от сервера значение строки отформатирован следующим образом: 14,5000 Мне нужно создать двойную переменную из нее с двумя числа после запятой: 14,50. Я попытался следующие:Форматирование номер строки в двойной переменной с два числа после десятичной точки

 DecimalFormat df = new DecimalFormat("#,00"); 
    Double priceD = Double.parseDouble((produitParam.item(paramNb).getTextContent())); 
    String dx = df.format(priceD); 
    produit.setPrixTtc(Double.valueOf(dx)); 

И я получаю 14,5. Если я использую DecimalFormat ("#. 00"), это дает мне ...

Кто-то может помочь мне с этим?

+0

попробовать этот шаблон для десятичного формата - "### ##" –

+0

Вы уверен, что вы получаете 15. .. для DecimalFormat ("#. 00")? Я попытался запустить на своей машине, и это результат 14.50. – User1123123

ответ

2

Если вы хотите строку с точностью до 2 точек после десятичной вы должны использовать

DecimalFormat df = new DecimalFormat("#.00"); 

вы использовали «# 00»

«» используется для указания разделителя группировки.

для получения дополнительной информации здесь является Java Doc из DecimalFormat: http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

0

вы должны смотреть этот link.There много ответить на ваш вопрос.

Я think.The лучший ответ DecimalFormat df = new DecimalFormat("#0.00"); для вас в ссылке

[how to convert double to 2 number after the dot?

+0

Я только что выяснил, что это функция ** Double.parseDouble ((produitParam.item (paramNb) .getTextContent())); **, которая удаляет все нули .... это их способ конвертировать непосредственно строка удваивается с 2-м номером после десятичной точки? –

+0

DecimalFormat df = new DecimalFormat ("# 0.00"); \t \t Строка a = "14.5800"; \t \t Двойная ценаD = Double.parseDouble (a); \t \t Строка dx = df.format (priceD); \t \t \t \t System.out.println (Double.valueOf (dx)); если я запустил этот код в моей машине. Я работаю правильно. Эта функция не удаляла все нули. – tarik

+0

Это невозможно. Метод ** Double.parseDouble ** известен для удаления всех нулей. (Http://www.coderanch.com/t/385764/java/java/covert-String-double-loosing-precision). Я решил использовать BigDecimal вместо –

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