Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2011, 18:24   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Округление числа

Подскажите пожалуйста способы округления числа (кроме способа консоли) возможно есть какой способ непосредственно при исчислении округлять

Буду очень благодарен
Anubys вне форума Ответить с цитированием
Старый 02.03.2011, 18:25   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

std::round из <cmath>
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 02.03.2011, 18:29   #3
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
std::round из <cmath>
Спасибо очень выручили.
Anubys вне форума Ответить с цитированием
Старый 02.03.2011, 19:22   #4
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Напишите пожалуйста пример применения
Anubys вне форума Ответить с цитированием
Старый 03.03.2011, 08:48   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Код:
#include <iostream>
#include <cmath>
int main()
{
    int x;
    x = std::round(1.64464532);
    std::cout << x << std::endl; // выведет 2
}
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 03.03.2011, 09:07   #6
Игорь698
Новичок
Джуниор
 
Регистрация: 03.03.2011
Сообщений: 3
По умолчанию

можно вопрос по исходному коду?
Игорь698 вне форума Ответить с цитированием
Старый 03.03.2011, 09:13   #7
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Поправка: это для C++0x draft http://www.cppreference.com/wiki/numeric/math/round

Если ваш компилятор не поддерживает этот стандарт (или если вы хотите использовать стабильный стандарт), используйте следующее:
Код:
int round(double number)
{
    return (number >= 0) ? (int)(number + 0.5) : (int)(number - 0.5);
}
Подходит и для Си.

Цитата:
можно вопрос по исходному коду?
Можно о_О. Кстати, зачем спрашивать разрешение на вопрос?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 03.03.2011 в 09:16.
Obey-Kun вне форума Ответить с цитированием
Старый 03.03.2011, 18:06   #8
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Код:
#include <iostream>
#include <cmath>
int main()
{
    int x;
    x = std::round(1.64464532);
    std::cout << x << std::endl; // выведет 2
}
Матерится на round пишет что функция не определена
Anubys вне форума Ответить с цитированием
Старый 04.03.2011, 00:14   #9
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

я же сказал, это для C++0x. Если вам этот стандарт не катит по некоторым причинам, делайте свой round, код я дал выше.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 05.03.2011, 21:59   #10
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию

Попытаюсь что-то сказать, но я новичок и могу ошибаться. Самый простой вид округления, по моему - это простое деление, в котором применяется оператор if с делением по модулю. Вот пример исходника:

Код:
#include <iostream>

int main()
{
  int a;
  std::cin << a;
  int b;
  if (a%1<0.5)
  {
    b=a/1;
  }
  else
  {
    b=a/1+1;
  }
  std::cout << b;
  return 0;
}
Это выдаст число a, округлённое до единиц. Единицу можно заменить любым числом или переменной, а 0.5 - тем же числом или переменной, разделённым на 2.

Последний раз редактировалось ACE Valery; 06.03.2011 в 02:57.
БалаШагаЛ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Округление числа [C++] ordoss Помощь студентам 5 26.09.2010 21:35
Округление числа в ячейке Aleksandr-St Microsoft Office Excel 1 17.04.2010 23:19
Округление числа Foxx Microsoft Office Excel 13 07.04.2010 07:09
Округление числа с точкой artemavd Общие вопросы Delphi 11 03.02.2010 02:06
Округление числа Pinya Microsoft Office Excel 2 18.09.2008 18:01