Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Java > Форум Java SE (J2SE)
Восстановить пароль Регистрация

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

Здравствуйте, помогите это реализовать.
10.06.2012, 02:38
AdAgent
Объявления
10.06.2012, 08:24   #2
_ViPeR_
Форумчанин
Регистрация: 02.03.2010
Сообщений: 581
Репутация: 275 (253)
Лучшие ответы: 10
Как округлить float до двух знаков после запятой

Код 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);
Другие темы раздела
Как определить сколько знаков после запятой у float Java SE
Здравствуйте! Подскажите, как это сделать?
Разработать класс представляющий успеваемость студента по дисциплине Java SE
Разработать класс представляющий успеваемость студента по дисциплине с методом определения его средней оценки. Создать 2 объекта класса: один с использованием конструктора без параметров, а другой с использованием параметризованного конструктора.
10.06.2012, 12:09   #3
M128K145
Форумчанин
Эксперт C++
Регистрация: 03.07.2009
Сообщений: 10,630
Репутация: 8177 (3399)
Лучшие ответы: 68
Как округлить float до двух знаков после запятой

Цитата Сообщение от 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
Модератор
Регистрация: 14.09.2011
Сообщений: 5,185
Репутация: 2382 (2151)
Записей в блоге: 18
Лучшие ответы: 65
Как округлить float до двух знаков после запятой

лучше вот такой хардкор
Код 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
AdAgent
Объявления
14.06.2012, 18:05   #5
rehscm
Новичок
Регистрация: 18.04.2010
Сообщений: 11
Репутация: 6 (2)
Лучшие ответы: 1
Как округлить float до двух знаков после запятой

как у вас все сложно )

Код 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
Модератор
Регистрация: 14.09.2011
Сообщений: 5,185
Репутация: 2382 (2151)
Записей в блоге: 18
Лучшие ответы: 65
Как округлить float до двух знаков после запятой

Цитата Сообщение от rehscm Посмотреть сообщение
как у вас все сложно )
зато уделывает ваш вариант по скорости в разы)))
14.06.2012, 19:20   #7
rehscm
Новичок
Регистрация: 18.04.2010
Сообщений: 11
Репутация: 6 (2)
Лучшие ответы: 1
Как округлить float до двух знаков после запятой / Java SE (J2SE)

да, действительно, 40 мс против 510 мс при 1млн вызовов. респект
14.06.2012, 19:20
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Delphi Как округлить выражение до двух знаков после запятой по правилам математики
Имеется запись v0:=v1-(v1*1/100); Как округлить выражение (v1*1/100) до двух знаков после запятой по правилам математики Добавлено через 54 минуты Сделал так v0:=v1-simpleroundto((v1*1/100), -2);
Delphi для начинающих govorun 15.02.2014 18:14
Visual C++ Округлить до двух знаков после запятой
Мне нужно округлить значение моей функции: float Summa(float n, float X); int main(){ ..... Sx=Summa(n,X); } как округлить до двух знаков после запятой Sx?
Visual C++ manubest 14.05.2013 15:31
C# WinForms Как округлить число до двух знаков после запятой
Здравствуйте в типе decimal заметил что в некоторых случаях после запитой набирается несколько кол-во цифр например decimal summa,count,x; count = Convert.ToDecimal(textBox1.Text); summa = Convert.ToDecimal(textBox2.Text); x =...
C# Windows Forms JP2 05.01.2013 11:16
Visual Basic Как округлить число до 15 знаков после запятой
Имеем, число tmp=-1,90413462841146E+37. Не могу округлить до 15 знаков после запятой к примеру. Round(tmp, 15) возвращает -1,90413462841146E+37 =( почему так и как округлить?
Visual Basic Extremo 10.11.2012 17:17
PHP Как округлить число до 2 знаков после запятой?
Как округлить число до 2 знаков после запятой?.
PHP для начинающих gr7411 21.05.2009 14:19
Опции темы


Текущее время: 01:37. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.