Преобразовать число с плавающей запятой в Informix - PullRequest
2 голосов
/ 20 апреля 2010

У меня есть таблица со столбцом типа decimal. Существует структура ESQL / C, которая представляет таблицу. У него есть член типа decimal. У меня также есть нормальная структура C для аналога для той же таблицы. Типом вышеупомянутого поля является число с плавающей запятой.

Поскольку мы используем memcpy для копирования данных в структуру ESQL / C и из нее в структуру C, существует проблема с преобразованием десятичных чисел в плавающие. Когда я искал руководство для программиста Informix ESQL / C, я не смог найти ни одной функции, которая могла бы сделать это. Поиск в Google привел меня к функции deccvflt (). Эта функция конвертирует из числа с плавающей точкой в ​​десятичный тип.

Хотя я не смог найти эту функцию в списке в руководстве, я вижу объявления в decimal.h. Эти функции все еще рекомендуется использовать?

В качестве альтернативы, я также думал об использовании десятичного типа в структуре C, поскольку это происходит в структуре C. Таким образом, я все еще могу использовать memcpy, верно?

Пожалуйста, поделитесь своими мыслями.

IBM Informix Dynamic Server версии 11.50.FC3

Спасибо, прабх

1 Ответ

1 голос
/ 20 апреля 2010

Вы можете преобразовать в число с плавающей запятой или десятичное непосредственно в вашем запросе, используя приведение

select name_of_float::decimal(8,2) from table

или

select name_of_decimal::float from table
...