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

Ответ Создать новую тему
 
Helldrg
Форумчанин
46 / 46 / 5
Регистрация: 10.01.2011
Сообщений: 631
10.06.2012, 02:38     Как округлить float до двух знаков после запятой
  #1
Здравствуйте, помогите это реализовать.
AdAgent
Объявления
10.06.2012, 02:38
_ViPeR_
Форумчанин
282 / 260 / 12
Регистрация: 02.03.2010
Сообщений: 602
10.06.2012, 08:24
  #2
Код 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);
M128K145
Форумчанин
Эксперт C++
8181 / 3403 / 68
Регистрация: 03.07.2009
Сообщений: 10,631
10.06.2012, 12:09
  #3
Цитата Сообщение от 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;
   }
mutagen
Форумчанин
2387 / 2156 / 65
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
10.06.2012, 15:11
  #4
лучше вот такой хардкор
Код 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;
    }
rehscm
Новичок
6 / 2 / 1
Регистрация: 18.04.2010
Сообщений: 11
14.06.2012, 18:05
  #5
как у вас все сложно )

Код 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);
}
mutagen
Форумчанин
2387 / 2156 / 65
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.06.2012, 18:14
  #6
Цитата Сообщение от rehscm Посмотреть сообщение
как у вас все сложно )
зато уделывает ваш вариант по скорости в разы)))
rehscm
Новичок
6 / 2 / 1
Регистрация: 18.04.2010
Сообщений: 11
14.06.2012, 19:20     Как округлить float до двух знаков после запятой
  #7
да, действительно, 40 мс против 510 мс при 1млн вызовов. респект
Yandex
Объявления
14.06.2012, 19:20
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Java SE Вывод двух цифр после запятой
Вот часто на олимпиадных сайтах встречаюсь с условием, что в ответе результат должен быть округлен до 2 знаков после запятой. В паскале была такая штука как Writeln(n:6:2); , как это осуществить в...
Java SE (J2SE) Droom 11.05.2014 09:17
Delphi Как округлить выражение до двух знаков после запятой по правилам математики
Имеется запись v0:=v1-(v1*1/100); Как округлить выражение (v1*1/100) до двух знаков после запятой по правилам математики Добавлено через 54 минуты Сделал так v0:=v1-simpleroundto((v1*1/100),...
Delphi для начинающих govorun 15.02.2014 18:14
Java SE Как указать количество знаков после запятой
Всем привет есть программа считает сумму синусов треугольника, вопрос как сделать так чтобы при выводе число знаков после запятой регулировалось пользователем (т.е. ввел пользователь в начале...
Java SE (J2SE) Flyinsky 26.09.2013 00:38
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 =...
C# Windows Forms JP2 05.01.2013 11:16
Java SE Округлить до N знаков
Доброго времени суток. Подскажите как в Java можно округлить до N знаков, зная длинну строки поля в котрое вводится точность? Пробовал через String.format, но там нужно знать писать число. ...
Java SE (J2SE) flips 15.09.2012 19:06
Java SE Как определить сколько знаков после запятой у float
Здравствуйте! Подскажите, как это сделать?
Java SE (J2SE) Helldrg 11.06.2012 01:15
Java SE Знаки после запятой
У меня есть число 45,454789354234 как мне сделать чтобы любой float число выводилось с двумя знаками после запятой(45,45)
Java SE (J2SE) Мыша 11.05.2011 15:25
Опции темы

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

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