Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/103: Рейтинг темы: голосов - 103, средняя оценка - 4.66
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
1

Проверка на вещественное число

25.01.2016, 22:53. Показов 18704. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста! Существует-ли проверка на вещественное число? Есть такой код -
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
double smallest(double, double, double);
int main()
{
    setlocale(LC_ALL, "Russian");
//--------------------------------------------------------------------
    double a=0.0;
    double b=0.0;
    double c=0.0;
//--------------------------------------------------------------------
    std::cout<<"Введите три числа с плавающей запятой: "<<std::endl;
    std::cout<<"Введите первое число : "; std::cin>>a;
    std::cout<<"Введите второе число : "; std::cin>>b;
    std::cout<<"Введите третье число : "; std::cin>>c;
    std::cout<<smallest(a, b, c);
//---------------------------------------------------------------------
    return 0;
}
double smallest(double a, double b, double c)
{
    double min=0;
    if(a<b && a<c)
    min=a;
    if(b<a && b<c)
    min=b;
    if(c<a && c<b)
    min=c;
    return min;
}
Как сделать так, чтоб после ввода числа, его проверяла на double???...если не double, то чтоб заново запрашивало...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 22:53
Ответы с готовыми решениями:

Проверка введеной строки на вещественное число
Очень нужна помощь! Построчно вводится с клавиатуры матрица вещественных чисел (числа в строке...

Пользователь вводит с клавиатуры: начальную сумму, внесённую на депозит (вещественное положительное число), годовой процент (вещественное положительно
Пользователь вводит с клавиатуры: начальную сумму, внесённую на депозит (вещественное положительное...

Дано вещественное число А>0. Найти среди чисел 1, 1+1/2, 1+1/3,… первое число, большее А
Дано вещественное число А&gt;0. Найти среди чисел 1, 1+1/2, 1+1/3,… первое число, большее А

Дано натуральное число N и вещественное число x. Вычислить частичную сумму ряда.
Дано натуральное число N и вещественное число x. Вычислить S=\sum \limits_{i = 1}^N \frac x...

9
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
25.01.2016, 23:04 2
читать в string там искать точку ,если не нашли значит не double
1
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
25.01.2016, 23:06  [ТС] 3
читать в string там искать точку ,если не нашли значит не double
т.е. если я не знаком с типом string то никак?
а как читать число в string?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
26.01.2016, 12:30 4
vikiroy,
C++
1
2
string str = to_string(n);
if(str.find('.')) cout << "is real value\n";
1
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
26.01.2016, 13:29 5
Лучший ответ Сообщение было отмечено vikiroy как решение

Решение

C++
1
if (a == (int)a) ...


Добавлено через 2 минуты
vikiroy, Функцию я бы переписал так
C++
1
2
3
4
5
6
7
double smallest(double a, double b, double c)
{
  min = a;
  if (b < min) min = b;
  if (c < min) min = c;
  return min;
}
2
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
26.01.2016, 13:41  [ТС] 6
C++
1
if (a == (int)a) ...
Спасибо! помогло!

Добавлено через 1 минуту
C++
1
2
string str = to_string(n);
if(str.find('.')) cout << "is real value\n";
Вам тоже спасибо! решил просто пока не знаком с типом не пользоваться им!
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
26.01.2016, 13:44 7
8-BITOV, Хм, я с самого начала подумал о таком же варианте, но потом подумал ещё, что тогда они оба к типу int сведутся, хотел проверить, а компилятора не было под рукой.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
26.01.2016, 14:06 8
Цитата Сообщение от makfak Посмотреть сообщение
тогда они оба к типу int сведутся
Нет, конечно. a - останется double, (int)a - целое, при сравнении они приведутся к "старшему", более емкому - double. Но если есть сомнения, можно сделать так
C++
1
2
double b = (double)((int) a);
if (a==b)...
Но в самом деле все это за вас сделает компилятор
1
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 1
01.10.2020, 15:15 9
8-BITOV, а как для float?
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
01.10.2020, 16:52 10
Mr_Fortuna11, привет, археолог, для float также только вместо double подставлять float
0
01.10.2020, 16:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2020, 16:52
Помогаю со студенческими работами здесь

Создать класс, содержащий символ, вещественное число и указатель на целое число
Создать класс: Данные класса- символ, вещественное число, указатель на целое число. Методы класса-...

Дано вещественное число A и целое число N. Вывести A в степени N (код внутри)
Дано вещественное число A и целое число N (N больше 0). Вывести A в степени N: AN =A•A•...•A (числа...

Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения:
Дано вещественное число X (|X| &lt; 1) и целое число N (&gt; 0). Найти значение выражения: X - Х 2 /2 + Х...

Дано рандомное вещественное число P, найти число M после запятой
1)Дано рандомное вещественное число P, найти число М после запятой, если пользователь задает...


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

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