Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/35: Рейтинг темы: голосов - 35, средняя оценка - 4.97
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
1

Как округлить double с точностью до 5

01.06.2011, 11:51. Показов 7224. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Например, 17 округлить до 15; 18 до 20; 22,5 до 20; 22,6 до 25?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2011, 11:51
Ответы с готовыми решениями:

Как округлить Double
Добрый день! Блин самое простое а не могу вспомнить: using System; using...

Как округлить double с точностью до числа
Уже второй день штурмую гугл. и все что в нем есть, все не работает, может кто знает рабочий...

Как округлить double
Задача: Все элементы массива поделить на значение наибольшего элемента этого массива. Решение...

Как округлить double?
Нужно округлять double до второй цифры после запятой например из double balance =1,04788899992...

7
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
01.06.2011, 12:00 2
Самому написать подпрограмму. Округлять стандартной функцией, анализировать остаток и добавлять/отнимать требуемое для вашего округления
1
208 / 138 / 15
Регистрация: 28.04.2011
Сообщений: 389
01.06.2011, 12:01 3
C#
1
d1 = d1 % 5 < 2.5 ? d1 -= d1 % 5 : d1 = d1 - d1 % 5 + 5;
2
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
01.06.2011, 12:04 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
 
class Program
{
    public static void RoundFive(ref double d)
    {
        if (d % 5 > 2.5)
            d = (int)(d / 5) * 5 + 5;
        else
            d = (int)(d / 5) * 5;
    }
 
    static void Main(string[] args)
    {
        double d = 22.5;
        RoundFive(ref d);
        Console.WriteLine(d);
        Console.ReadKey(true);
    }
}
1
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
01.06.2011, 12:34  [ТС] 5
Отдельно работает, а когда использую в формуле нет
C#
1
ScaleCor = (int)(min + RoundFive(ref (max - min) / 2));
0
208 / 138 / 15
Регистрация: 28.04.2011
Сообщений: 389
01.06.2011, 14:19 6
что пишет то
1
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
01.06.2011, 15:26  [ТС] 7
Сделал так и заработало
C#
1
2
3
4
5
6
7
8
public static int RoundFive(double d)
        {
            // Округляем с точностью до 5
            if (d % 5 > 2.5)
                return (int)(d / 5) * 5 + 5;
            else
                return (int)(d / 5) * 5;
        }
ScaleCor = (int)(min + RoundFive((max - min) / 2) - 520);
Не знаю правильно или нет, если нет отпишитесь

Добавлено через 1 минуту
И так работает, а как правильно то?
C#
1
2
3
4
5
6
7
8
private int RoundFive(double d)
        {
            // Округляем с точностью до 5
            if (d % 5 > 2.5)
                return (int)(d / 5) * 5 + 5;
            else
                return (int)(d / 5) * 5;
        }
0
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 9
30.12.2011, 14:55 8
C#
1
2
double d= 0.0;
int a =5 , b = 2;
.... Решение

C#
1
d = Math.Round(a/b,0); // где 0 - без знака
Ответ округление 3

C#
1
d = Math.Round(a/b,1); // где 1 - 1 знака после запятой
ответ 2,5
0
30.12.2011, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2011, 14:55
Помогаю со студенческими работами здесь

Как округлить значение Double?
К примеру выходит у меня по итогу вычислений, double равный 12,4760582343 А как его можно...

Как округлить decimal с заданной точностью?
Как округлить положительное decimal с точностью до определенного количества знаков после запятой в...

Excel97/VBA: Как округлить Double и CCur до четырех первых чисел?
Excel97/VBA: Как округлить Double и CCur до четырех первых чисел. Встроенная функция Round не...

Округлить double
Иногда возвращается число с десятыми/сотыми и т.д., к примеру 47,5674, а иногда есть только...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru