Форум программистов, компьютерный форум, киберфорум
mutagen
Войти
Регистрация
Восстановить пароль
все вопросы по Java которые задают более 3х раз на форуме
Оценить эту запись

Округляем double/float

Запись от mutagen размещена 24.09.2012 в 00:04
Обновил(-а) mutagen 17.01.2013 в 12:27

Любители C/C++ часто спрашивают как это сделать в java

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class FloatAndDouble {
 
    public static void main(String[] args) {
        System.out.println(round(3.834245, 2));
        System.out.println(round(3.834245f, 2));
    }
 
    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;
    }
 
    private static double round(double number, int scale) {
        int pow = 10;
        for (int i = 1; i < scale; i++)
            pow *= 10;
        double tmp = number * pow;
        return (double) (int) ((tmp - (int) tmp) >= 0.5 ? tmp + 1 : tmp) / pow;
    }
}
Размещено в Без категории
Показов 3824 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    И где тут double? Вообще если возникла потребность в округлении вещественных чисел, то это ошибка в архитектуре приложения. Для точных расчетов следует использовать BigDecimal.
    Запись от aleksandy размещена 27.12.2012 в 10:47 aleksandy вне форума
  2. Старый комментарий
    Аватар для mutagen
    с double, точно так же - только тип поменять и f убрать, а по поводу архитектуры - я не преследую цели сделать тут копилку идеального кода, это просто ответ на вопрос который задают болеее 3 раз
    И вы таки правы я напишу и для double явно
    Запись от mutagen размещена 17.01.2013 в 12:24 mutagen вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru