Олимпиадное программирование

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Олимпиадное программирование » Java (Eclipse) » Вывод чисел с плавающей точкой


Вывод чисел с плавающей точкой

Сообщений 1 страница 4 из 4

1

Как вывести число с плавающей точкой с заданным количеством знаков?
Эх, как все было просто в паскале: (chislo:a:b)  :)

0

2

Для форматирования чисел в яве существут абстрактный класс java.text.NumberFormat

Для получения экземпляра этого класса нужно вызвать у него статический метод getInstance(), в который параметром передать используемую локаль (числа по разному в разных языках пишутся - например в русском дробная часть через запятую, а в английском через точку). Чтобы задать локаль нужно воспользоваться классом java.lang.Locale, у которого есть куча статических переменных, обозначающих локали. Нам подходит Locale.ENGLISH или Locale.US То есть нужно написать что-то вроде

NumberFormat nf = NumberFormat.getInstance(Locale.US);

После этого у этого nf можно вызывать всякие полезные методы. В частности:
    nf.setGroupingUsed(boolean newValue); использовать/не использовать группировку по разрядам. По умолчанию это значение установлено в true, поэтому число миллион будет выглядеть вот так "1.000.000" - каждые три циферки через точку, поэтому если не хотим получить presentationError, то обязательно вызываем этот метод и отдаем ему false.

    nf.setMaximumFractionDigits(int newValue); устанавливает максимальное число знаков, выводимых после запятой.

    nf.setMinimumFractionDigits(int newValue); устанавливает минимальное число знаков, выводимых после запятой.

    nf.format(double/long number); возвращает строку с отформатированным числом.

0

3

Т.е. для того, чтобы выводить всегда, скажем 3 знака нужно установить минимальное и максимальное значение 3?

А чем этот способ лучше или хуже:

double a=1.01001;
system.out.println(Math.round(a*100)/100.0);

0

4

Да, тогда 3 знака после запятой будет.

Math.round() отдает long. В double может лежать например какое-нибудь 1. 7е+308, оно не влезет в long.

0


Вы здесь » Олимпиадное программирование » Java (Eclipse) » Вывод чисел с плавающей точкой