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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 20:33   #1
apraxie
 
Регистрация: 05.11.2011
Сообщений: 8
Восклицание Отбросить дробную часть от числа типа double не выходит! Си

В общем задача такова:
ввожу десятизначное положительное число типа double с клавиатуры.
нужно сделать проверку, чтоб это число было без дробной части.
тоесть если например: 5555555555.354 - чтоб выдавал ошибку и повторить ввод.

вот код:
Код:
double y;
 
do
         {
                  e[i].nom=-1;
                  fflush(stdin);
                  scanf("%lf",&e[i].nom);
                  y=e[i].nom-floor(e[i].nom);
                  if (e[i].nom<1000000000.0||e[i].nom>9999999999.0||y>0)
                  printf(" Неверный ввод. Повтори, пожалуйста: ");
         }      
while((e[i].nom<1000000000.0)||(e[i].nom>9999999999.0||y>0);
библиотеку math.h включил
пишу на dev c++
Заранее спасибо!
apraxie вне форума Ответить с цитированием
Старый 16.12.2011, 20:49   #2
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

А если вводить не в double, а в string или char* тут все просто (проверить символы после точки). И cmath вообще не нужна будет.
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 17.12.2011, 00:09   #3
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

Код:
int buf = число - (int)число;
if (buf !=0)
Ввод неверный
bananasus вне форума Ответить с цитированием
Старый 17.12.2011, 00:18   #4
sandye51
 
Регистрация: 16.12.2011
Сообщений: 3
По умолчанию

Код:
double value = 6.566;
if (static_cast<double>(static_cast<int>(value)) == value)
 std::cout << "OK" << std::endl;
else
 std::cout << "Повторить ввод" << std::endl;
схематично так..
sandye51 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер(разделить 2 числа и вывести целую и дробную часть) Bleize Помощь студентам 0 22.11.2011 22:40
выделить дробную часть числа unbanned Паскаль, Turbo Pascal, PascalABC.NET 12 18.06.2011 22:23
полностью убрать дробную часть числа Rainz Паскаль, Turbo Pascal, PascalABC.NET 23 02.06.2010 19:17
как отбросить целую часть оставив дробную Alex26RusLink Паскаль, Turbo Pascal, PascalABC.NET 1 24.10.2009 11:36
отделить дробную часть от числа |v||v|<<IpShot Общие вопросы C/C++ 19 24.09.2008 18:21