2013-07-16 1 views
1

Как ограничить число цифр всего числа не только дробной частью числа после десятичного числа?Как изменить размер числа до десятичной точки с помощью метода DecimalFormat

например, используя номер 54321.12574857f с методом DecimalFormat ("## 0. ##"); он должен возвращать 543.12 или 321.12, два десятичных знака после десятичного числа верны, однако я хочу уменьшить числа до десятичной до 3. Как это делается?

после ввода номера 54321.12574857 я использовал параметр для метода DecimalFormat в ## 0. ##, и я ожидал, 543.12, 321.12 или не то, что я получаю, который 54321.12

только цифры, измененные метод DecimalFormat те после десятичной

  float inputNumber = 54321.12574857f; 

    DecimalFormat decimalFormat = new DecimalFormat("##0.##"); 
    String newNumber = String.valueOf(decimalFormat.format(inputNumber)); 

    System.out.println(newNumber); 
+0

Любая конкретная причина, почему вы не используете '%'? – Aprian

+0

Можете ли вы привести пример String.format, используя%? Я предполагаю, что вы говорите о методе String.format, когда вы упомянули% – Kevik

+0

Нет. Я имел в виду использование оператора 'mod'. – Aprian

ответ

1

Попробуйте некоторые вещи, как это,

DecimalFormat decimalFormat = new DecimalFormat("##0.##"); 
    String newNumber = String.valueOf(decimalFormat.format(inputNumber/100)); 
+0

, который будет работать, единственная проблема заключается в том, что нужно будет сделать метод разделите число на сколько цифр негабаритных. например, теперь он равен 2, поэтому вы разделите на 100 и на 3 больше на 1000, тогда мне понадобится инструкция switch if else, чтобы продолжать проверять, сколько. – Kevik

+0

@ Kevik другой мудрый вы не сможете удалить ведущие номера таким образом. –