Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
12 / 12 / 7
Регистрация: 05.06.2012
Сообщений: 280
1

Округлить число

19.07.2012, 18:29. Просмотров 1417. Ответов 11
Метки нет (Все метки)

Ну начнём))) Во-первых Visual Studio 10(Roudn и Trunc не видно)
Во вторых float и cell +-.5 не подоходят так ,как числа могут поподаться как отрицальные так и положительные
Допустим если в функцию попадает 1.1 на выходе 1.0, если -1.1 то на выходе -1.0
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2012, 18:29
Ответы с готовыми решениями:

как округлить число?
нужно чтобы от числа F выводило только целую часть, пример f=5.4 --->5 f=5.8 --->5 как это...

Как округлить число с 19 до 20
Вопрос в заголовке. Прошу подсказать.

Как округлить число до сотых?
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь...

Округлить число не используя вещественненную арифметику
Здравствуйте, есть два int a и b Они принимают какие-либо значения, как можно округлить результат...

11
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
19.07.2012, 19:02 2
Попробуй вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
    double n;
 
    cout << "Введите число: ";
    cin >> n;
 
    cout << "Ближайшее целое равно ";
 
    if (n >= 0)
        cout << floor(n + 0.5) << endl;
    else
        cout << ceil(n - 0.5) << endl;
1
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
19.07.2012, 19:03 3
чем ceil вам не нравится ?
0
161 / 161 / 68
Регистрация: 23.02.2011
Сообщений: 392
19.07.2012, 19:05 4
Проверяйте знак и передавайте в нужную функцию.
0
8 / 8 / 2
Регистрация: 14.11.2011
Сообщений: 54
19.07.2012, 19:09 5
C++
1
2
float a=5.356;
a=(int) a;
Возможно вам подойдет такой вариант.
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
19.07.2012, 19:21 6
Цитата Сообщение от Рулик Посмотреть сообщение
C++
1
2
float a=5.356;
a=(int) a;
Это немного не то. Здесь просто отбрасывается дробная часть у числа.
0
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
19.07.2012, 19:32 7
Intel~lect, и что?
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
19.07.2012, 19:39 8
Цитата Сообщение от Fatal Error Посмотреть сообщение
и что?
Ведь надо до ближайшего целого округлить число.
Ну вот, например, int(1.9) = 1, а должно получится 2.
1
8 / 8 / 2
Регистрация: 14.11.2011
Сообщений: 54
19.07.2012, 19:53 9
Тогда можно так
C++
1
2
3
4
5
float a=3.55;
if(a-(int)a=>0.5)
    a=(int)a+1;
else 
    a=(int)a;
2
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
19.07.2012, 19:56 10
Цитата Сообщение от Intel~lect Посмотреть сообщение
Ведь надо до ближайшего целого округлить число.
Ну вот, например, int(1.9) = 1, а должно получится 2.
А если так:
C++
1
2
float a;
a=(int)(a+0.5)
т.е в этом случае всё, что до 0.499 будет округляться к 0, а начиная с 0.5 к 1.

ЗЫ, а ну да, ведь ещё для отрицательного, тогда
C++
1
2
3
4
float a;
if (a >=0)
a=(int)(a+0.5);
else a=(int)(a-0.5);
2
161 / 161 / 68
Регистрация: 23.02.2011
Сообщений: 392
19.07.2012, 19:57 11
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    double a;
    std::cin >> a;
    std::cout << ((a >= 0) ? ((int)(a + 0.5) - (int)a == 1 ? (int)a + 1 : (int)a) : ((int)(a - 0.5) - (int)a == -1 ? int(a) - 1 : int(a)));
    
    return 0;
}
0
Мой лучший друг-отладчик!
165 / 165 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
19.07.2012, 20:35 12
Вот, наклепал на студии. Вроде работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// okr.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    long double a,b,c;
    system("chcp 1251");
    cout<<"Введите число для округления"<<endl;
    cin>>a;
    b=modf(a,&c);
    if(a>=0)
    {
    if(b>=0.5)
        b=int(a) + 1;
    else
        b=int(a);
    }
    else
    {
      if(b<=-0.5)
          b=int(a) - 1;
      else
          b=int(a);
    }
    cout<<"Ваше число: "<<b<<endl;
    system("pause");
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2012, 20:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Округлить заданное число до ближайшей сотни
Помогите решить плиз Задано неотрицательное целое число N. Округлить до ближайшей сотни. 50...

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

Округлить число до 25 знаков после десятичной точки
Есть простая задача: вот я ее решаю таким способом, т.к в задании написано округлить ...

Округлить число к его ближнему целому значению
Дано число х, округлить его к ближнему целому значению


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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