|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
мне нужна такая функция которая после ввода символов ( через scanf) проверяет число с плавающей запятой ли это или нет заранее благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2006, 14:56 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
karl2003мне нужна такая функция которая после ввода символов ( через scanf) проверяет число с плавающей запятой ли это или нет заранее благодарю StrToFloat + try + catch ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2006, 15:33 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
homichus karl2003мне нужна такая функция которая после ввода символов ( через scanf) проверяет число с плавающей запятой ли это или нет заранее благодарю StrToFloat + try + catch я так понял что это для С++, а мне надо для Си. и желательно примерчик. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2006, 18:27 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
F1: strtod , там и примерчик есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2006, 18:57 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
Лексический анализ выполняется конечными автоматами. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2006, 07:55 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
Функция Преобразует строку в число с плавающей точкой. Синтаксис #include <math.h> double atof(const char * s); Файл, содержащий math.h, stdlib.h прототип Описание Функция atof преобразует символьную строку, адресный указатель которой находится в аргументе s, в число с двойной точностью (тип double); данная функция распознает символьное представление числа с плавающей точкой следующего вида: - необязательная строка табуляции и пробелов; - необязательный знак; - строку цифр и необязательную десятичную точку (цифры могут находиться с обеих сторон от точки); - необязательные символы e или E, за которыми следует необязательное целое со знаком. Символы должны соответствовать следующему формату: [пробелы] [знак] [ddd] [.] [ddd] [e|E[знак]ddd] atof также распознает +INF и -INF для плюс и минус бесконечности, +NAN и -NAN для нечисловых значений. Эта функция прекращает преобразование на первом нераспознаваемом символе. strtod аналогична atof; она дает лучшее распознавание ошибок, и поэтому в некоторых случаях предпочтительнее. Возвращаемое atof возвращает преобразованное значение указанной значение символьной строки. В случае переполнения atof возвращает положительное или отрицательное значение HUGE_VAL, глобальная переменная errno устанавливается в ERANGE и функция matherr не вызывается. Переносимость Поддерживается в системах UNIX и определена в ANSI C. Смотрите также atoi, atol, ecvt, fcvt, gcvt, scanf, strtod. Пример: #include<stdlib.h> #include<stdio.h> int main(void) { float f; char *str = "12345.678"; f = atof(str); printf("строка = %s значение = %5.3f\n",str,f); return 0; } ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2006, 14:48 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
Функция Преобразует число с плавающей точкой в строку символов. Синтаксис #include<stdlib.h> char * fcvt(double value, int ndig, int * dec, int * sign); Файл, содержащий stdlib.h прототип Описание Функция fcvt преобразует значение value в строку с нулевым окончанием из ndig цифр, начиная с самой левой значащей цифры, и возвращает адресный указатель строки. Позиция десятичной точки относительно начала строки косвенным образом хранится в параметре dec (отрицательное значение decpt означает левый отсчет полученных цифр). В самой строке десятичной точки нет. Если знак результата отрицательный, слово, на которое указывает адресный указатель sign, имеет ненулевое значение, иначе оно равно 0. Число округляется к числу разрядов, задаваемому параметром ndig. Возвращаемое Функция fcvt возвращает адресный указатель значение статическую строку, чье содержимое перезаписывается при каждом вызове функций. Переносимость Функция поддерживается на системах UNIX. Она не определена в стандарте ANSI C, и поэтому мы не рекомендуем использовать ее при написании переносимых программ. Смотрите также ecvt, gcvt, sprintf. Пример: #include<stdlib.h> #include<stdio.h> int main(void) { char *str; double num; int dec, sign; int ndig = 5; num = 9.876; str = fcvt(num,ndig,&dec,&sign); printf("Строка = %s dec = %d sign = %d\n",string,dec,sign); /* отрицательное число */ num = -123.45; str = fcvt(num,ndig,&dec,&sign); printf("Строка = %s dec = %d sign = %d\n",string,dec,sign); num = 0.678e5; str = fcvt(num,ndig,&dec,&sign); printf("Строка = %s dec = %d sign = %d\n",string,dec,sign); return 0; } ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2006, 14:50 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
сначала преобразуй в строку, потом опять в число с плавающей точкой... возвращаемое значение мотри выше, хоть и геморно, но работать буд... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2006, 14:51 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
karl2003мне нужна такая функция которая после ввода символов ( через scanf) проверяет число с плавающей запятой ли это или нет заранее благодарю а может сканф не надо ? Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2006, 18:38 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
можно и через сканф char str[20]; scanf("%s",str); int IsFloat = (int)atof( input ) != atoi( inpunt); ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2006, 15:32 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
эммм, что у меня с gcvt не так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 11:10 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
gcvt не является стандартной функцией. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 13:32 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
Подняли засохший и пыльный топик. Ну ладно. Все рецепты, основанные на возвращении double - не совсем полноценные. Что нам предлагают? Вместо статуса ошибки. 0.0 ? HUGE_VAL ? Inf? Nan? Это все тоже конкретные состояния переменной double. Тут надо возвращать либо объект-обертку который содержит признак того распарсили мы число или нет или вернуть пару примитивов. Собственно double и статус ошибки (<double,bool>). На новых плюсах должно быть как-то так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 13:47 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
YuriyRusinov gcvt не является стандартной функцией. какую брать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 17:17 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
tchingiz YuriyRusinov gcvt не является стандартной функцией. какую брать? sscanf() ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 17:35 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
Например atof, strtod И еще грамотно заданный вопрос содержит в себе половину ответа, поэтому надо не поднимать топик 10+ летней давности, а создать новую тему в которой описать проблему и задать вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 17:38 |
|
подскажите функцию определяющую double это или нет
|
|||
---|---|---|---|
#18+
тогда уж sprintf ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 20:36 |
|
|
start [/forum/topic.php?fid=57&msg=39994113&tid=2017347]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 235ms |
total: | 514ms |
0 / 0 |