Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Java > Форум Java SE (J2SE)
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 10.06.2012, 02:38   #1
Helldrg
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 626
Репутация: 46 (46)
Лучшие ответы: 5
Как округлить float до двух знаков после запятой / Java SE (J2SE)

Здравствуйте, помогите это реализовать.
Старый 10.06.2012, 08:24   #2
_ViPeR_
Форумчанин
 
Регистрация: 02.03.2010
Сообщений: 552
Репутация: 259 (237)
Лучшие ответы: 5
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
double d = 5.77878752;
d = new BigDecimal(d).setScale(2, RoundingMode.UP).doubleValue();
System.out.println(d);
Другие темы раздела Форум программистов Java. Платформа Java стандартной версии. Создание апплетов и приложений на Java.
Как определить сколько знаков после запятой у float Java SE
Здравствуйте! Подскажите, как это сделать?
Разработать класс представляющий успеваемость студента по дисциплине Java SE
Разработать класс представляющий успеваемость студента по дисциплине с методом определения его средней оценки. Создать 2 объекта класса: один с использованием конструктора без параметров, а другой с использованием параметризованного конструктора.
Старый 10.06.2012, 12:09   #3
M128K145
Форумчанин
Эксперт C++
 
Аватар для M128K145
 
Регистрация: 03.07.2009
Сообщений: 10,626
Репутация: 8151 (3373)
Лучшие ответы: 68
Цитата Сообщение от Helldrg Посмотреть сообщение
Здравствуйте, помогите это реализовать.
Если есть желание подумать, то можно и так
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
   private static float round(float number, int scale) {
      int pow = (int) Math.pow(10, scale);
      float tmp = number * pow;
      return (float) (int) ((tmp - (int) tmp) >= 0.5f ? tmp + 1 : tmp) / pow;
   }
Старый 10.06.2012, 15:11   #4
mutagen
Модератор
 
Аватар для mutagen
 
Регистрация: 14.09.2011
Сообщений: 5,185
Репутация: 2317 (2136)
Записей в блоге: 18
Лучшие ответы: 63
лучше вот такой хардкор
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
    private static float round(float number, int scale) {
        int pow = 10;
        for (int i = 1; i < scale; i++)
            pow *= 10;
        float tmp = number * pow;
        return (float) (int) ((tmp - (int) tmp) >= 0.5f ? tmp + 1 : tmp) / pow;
    }
Старый 10.06.2012, 15:11
Google
Объявления
Как округлить float до двух знаков после запятой / Java SE (J2SE)

Старый 14.06.2012, 18:05   #5
rehscm
Новичок
 
Регистрация: 18.04.2010
Сообщений: 11
Репутация: 6 (2)
Лучшие ответы: 1
как у вас все сложно )

Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
public static double round(double value, int scale) {
      return Math.round(value * Math.pow(10, scale)) / Math.pow(10, scale);
}
Старый 14.06.2012, 18:14   #6
mutagen
Модератор
 
Аватар для mutagen
 
Регистрация: 14.09.2011
Сообщений: 5,185
Репутация: 2317 (2136)
Записей в блоге: 18
Лучшие ответы: 63
Цитата Сообщение от rehscm Посмотреть сообщение
как у вас все сложно )
зато уделывает ваш вариант по скорости в разы)))
Старый 14.06.2012, 19:20   #7
rehscm
Новичок
 
Регистрация: 18.04.2010
Сообщений: 11
Репутация: 6 (2)
Лучшие ответы: 1
да, действительно, 40 мс против 510 мс при 1млн вызовов. респект
Старый 14.06.2012, 19:20
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
Java SE (J2SE) Как определить сколько знаков после запятой у float
Здравствуйте! Подскажите, как это сделать?
Helldrg
Visual Basic .NET Как увеличить количество знаков после запятой
Есть переменная х, значение которой циклически вычисляется по формуле. Результаты записываются в тхт файл: 0,1 0,2 0,3 0,4 и тд. Необходимо получить следующий результат: 0,100000 0,200000 0,300000
Aanklager
С++ для начинающих Как округлить в С++ вещественное число до 2 знаков после запятой?
Ну собсно вопрос в теме. заранее спасибо))
Veyron
PHP для начинающих Как округлить число до 2 знаков после запятой?
Как округлить число до 2 знаков после запятой?.
gr7411
Visual Basic Округление до двух знаков после запятой
Подскажите пожалуйста. Есть число и много знаков после запятой. Нужно оставить 2. Пишу Round(число,2). А если после хапятой всего 1 знак, то как сделать 2? Есть ли функция?
Inebs
Опции темы

Текущее время: 15:28. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.