2015-01-23 1 views
1

У меня есть этот код:Как форматировать число с плавающей запятой в Java String.valueOf

StringBuilder sbp = new StringBuilder().append(
    String.valueOf((temp/10F))) 
    .append(" \260C/").append(String.valueOf((temp/10F)*9/5+32)) 
    .append(" \260F"); 

и я получаю этот результат:

29.8 C/85.641 F 

Я хочу форматировать число с плавающей точкой, чтобы показать максимум 1 цифра после знаков после запятой, 85,6 вместо 85,641

+0

Я думаю, что это дубликат http://stackoverflow.com/questions/703396/how-to-nicely-format-floating-numbers -to-string-without-needecessary-decimal-0 – bhspencer

+0

не очень, потому что мне нужен был формат для StringBuilder, но мне кажется, что мне все равно нужно сначала создать String.format, а затем добавить в StringBuilder –

ответ

3

Вы могли бы добиться этого с помощью string.Format вместо:

String s = String.format("%.1f C/%.1f F", temp/10F, (temp/10F)*9/5+32); 
+0

Спасибо, теперь я могу добавьте s в stringbuilder –

1

Вот простой пример, который можно реализовать в вашем StringBuilder:

float num = 85.641f; 
num = Math.round(num * 10)/10f; // pi is now 85.6 
+0

Как насчет этого, Марио? Как ты думаешь, Алан? –

+0

Все, что вам нужно сделать, - это сбрасывать строку с помощью 'String.valueOf (num)'. –

+0

Мне нужно сделать это с каждым номером, что делает код избыточным, ответ от Алана гораздо более компактен. –

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

  • Нет связанных вопросов^_^