2015-12-03 2 views
0

Мне нужна помощь при округлении до равных мест с использованием цикла. У меня есть код, который работает, но это очень неудобный метод, и я не думаю, что это хорошая кодировка и действительно нужна помощь с циклом for.Формат мест - java

Я уже объявил выше, который я проанализирую в своем основном классе.

Мне нужна помощь в создании цикла for, чтобы помочь привести в порядок этот код и удалить все инструкции «if» и «else if», любая помощь будет высоко оценена.

Спасибо

+0

Вы хотите ** округлить ** значения или вы хотите ** их формат ** их? –

+0

отформатировать их в зависимости от пользовательского ввода. 1-10 – Mecroth

ответ

1

Вы, кажется, есть два различных случая:

  1. Когда noDecimal находится между 1 и 10.
  2. Когда noDecimal является 0.

Таким образом, ваш код необходимо будет выглядеть примерно так:

double decimalPlace = noDecimal; 
DecimalFormat formatter = new DecimalFormat("##.##########"); 

if (noDecimal == 0) { 
    decimalPlace = 0.00000000000000000000000000000000000000000001; 
} 
else { 
    decimalPlace = 1; 
    StringBuilder formatString = new StringBuilder(); 
    formatString.append("#0."); 
    for(int i = 0; i < noDecimal; i++) { 
     formatString.append("0"); 
     decimalPlace /= 10; 
    }  
    formatter = new DecimalFormat(formatString.toString()); 
} 

Для noDecimal значение 2, этот код произвел бы decimalPlace значение 0.01 (1 -> 0,1 -> 0,01) и значение форматирования #0.00.

+0

да, после того, как я это выяснил, я не достаточно быстро, чтобы не отставать от вас =), но вот как это будет работать ^^ –

+0

@MartinFrank: Да, название вопроса и его содержание не соответствуют действительности , – npinti

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