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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2007, 15:23   #1
Look
 
Регистрация: 03.11.2007
Сообщений: 7
По умолчанию Как проверть, есть ли в числе запятая?

Собственно, имеется выражение и необходимо проверить, является ли его результат целым числом, или в нём есть дробная часть.
Как это реализовать в c++ ?

Последний раз редактировалось Look; 06.11.2007 в 15:29.
Look вне форума Ответить с цитированием
Старый 06.11.2007, 16:10   #2
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

не понял вопроса.
поточнее.
что за выражение?
Alek86 вне форума Ответить с цитированием
Старый 06.11.2007, 16:27   #3
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Выражение - это обычная строка char*?
То есть нужно определить, является ли строка числом, а если является, то целым или дейтсвительным?
still_alive вне форума Ответить с цитированием
Старый 06.11.2007, 16:29   #4
Look
 
Регистрация: 03.11.2007
Сообщений: 7
По умолчанию

Код:
n = (1-2*a1 + pow(D,0.5))/2 ;
Нужно проверить, является ли n целым числом.
На делфи эта проверка выглядит так :
Код:
if pos(',', FloatToStr(n)) = 0 then
Look вне форума Ответить с цитированием
Старый 06.11.2007, 18:16   #5
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Код:
if (n-(__int64)n==0.0) ...
или для надёжности

Код:
if (n-(__int64)n<0.00000000000001) ...

Последний раз редактировалось Carbon; 06.11.2007 в 18:22.
Carbon вне форума Ответить с цитированием
Старый 06.11.2007, 21:27   #6
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

ничего личного, но за

if pos(',', FloatToStr(n)) = 0 then

:D:D:D:D:D:D:D:D

надо еще

if pos(DecimalSeparator, FloatToStr(n)) = 0 then

чтобы учитывать локализацию
Alek86 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количества знака в числе valerij Microsoft Office Excel 5 17.08.2008 16:52
Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных)? SkAndrew Общие вопросы Delphi 8 15.08.2008 15:30
Замена второго бита в числе SZR Помощь студентам 4 25.01.2008 20:16
Hайти натуральное i, что s[i] - последняя по порядку запятая - Паскаль profi Помощь студентам 20 02.12.2007 19:57