Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Количество знаков после точки


Автор: Still 6.11.2008, 02:25
Сразу попрошу прощения, что небольшой боян. 

Проблема
Есть число типа double, после запятой десяток цифр. Необходимо перезаписать переменную, чтобы осталось тоже число, но с n-знаками после запятой.


"Гуглился" на форуме, нашел определенные темы, однако в них обсуждалось в основном описание вывода такого рода чисел. Наверно просто плохо искал, башка не варит ночью.

Заранее спасибо!

Автор: Platon 6.11.2008, 07:28
В голову приходят варианты:
Код

double rounded = Double.valueOf(String.format("%.6f", number));


или

Код

double rounded = ((long)(number * 1E6 + .5))/1E6;


или

Код

double number = 124124124.2352356326252;
long fullPart = number;
number -= fullPart;
double rounded = ((long)(number * 1E6 + .5))/1E6 + fullPart;

Автор: Keyo 6.11.2008, 09:16
Если не будет дальнейших вычислений, то можно что-то типа

Код
        
        DecimalFormat nFormat = (DecimalFormat) NumberFormat.getNumberInstance();
        DecimalFormatSymbols formatS = new DecimalFormatSymbols();
        formatS.setDecimalSeparator('.');
        nFormat.setDecimalFormatSymbols(formatS);
        nFormat.setMaximumFractionDigits(2);
        nFormat.setMinimumFractionDigits(2);

        nFormat.format(12213123.324234234);

Автор: LSD 6.11.2008, 17:32
http://www.ibm.com/developerworks/ru/library/j-jtp0114/index.html

Читать до полного понимания проблемы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)