Форум программистов, компьютерный форум CyberForum.ru

Java SE (J2SE)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 184, средняя оценка - 4.71
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,100
#1

Как округлить float до двух знаков после запятой - Java SE

10.06.2012, 02:38. Просмотров 24550. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите это реализовать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_ViPeR_
420 / 395 / 62
Регистрация: 02.03.2010
Сообщений: 944
10.06.2012, 08:24     Как округлить float до двух знаков после запятой #2
Java
1
2
3
double d = 5.77878752;
d = new BigDecimal(d).setScale(2, RoundingMode.UP).doubleValue();
System.out.println(d);
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
10.06.2012, 12:09     Как округлить float до двух знаков после запятой #3
Цитата Сообщение от Helldrg Посмотреть сообщение
Здравствуйте, помогите это реализовать.
Если есть желание подумать, то можно и так
Java
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;
   }
mutagen
2554 / 2227 / 72
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
10.06.2012, 15:11     Как округлить float до двух знаков после запятой #4
лучше вот такой хардкор
Java
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;
    }
rehscm
6 / 2 / 1
Регистрация: 18.04.2010
Сообщений: 11
14.06.2012, 18:05     Как округлить float до двух знаков после запятой #5
как у вас все сложно )

Java
1
2
3
public static double round(double value, int scale) {
      return Math.round(value * Math.pow(10, scale)) / Math.pow(10, scale);
}
mutagen
2554 / 2227 / 72
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.06.2012, 18:14     Как округлить float до двух знаков после запятой #6
Цитата Сообщение от rehscm Посмотреть сообщение
как у вас все сложно )
зато уделывает ваш вариант по скорости в разы)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2012, 19:20     Как округлить float до двух знаков после запятой
Еще ссылки по теме:
Java SE Сравнить элементы двух коллекций <Float> и создать результирующую коллекцию, состоящую из больших элементов
Java SE Обрезать дробную часть, до одной цифры после запятой
Java SE В чём разница между константами Float.MIN_VALUE и Float.MIN_NORMAL?
Java SE Как записать float данные в текстовый файл?
Float вычитание Java SE

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rehscm
6 / 2 / 1
Регистрация: 18.04.2010
Сообщений: 11
14.06.2012, 19:20     Как округлить float до двух знаков после запятой #7
да, действительно, 40 мс против 510 мс при 1млн вызовов. респект
Yandex
Объявления
14.06.2012, 19:20     Как округлить float до двух знаков после запятой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru