Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста решить проблему. Проблема в считывании из таблицы значений типа float: char *ID_ptr; char *Password_ptr; char *Time_ptr; ID_ptr = PQgetvalue(res, i, ID_fnum); Password_ptr = PQgetvalue(res, i, Password_fnum); Time_ptr = PQgetvalue(res, i, Time_fnum); //Здесь все ОК. Переворачиваем припомощи ntohl, получаем что надо. unsigned long A = (unsigned long)ntohl(*((long*)ID_ptr)); int B = ntohl(*((int*)Password_ptr)); //А здесь косяк. Значения получаются все, корме нужного float C = ntohl(*((float*)Time_ptr)); А во всей документации упорно все приводиться к int-ам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 03:43 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
А какой текст в Time_ptr ? Может быть проблема в локали, т.е. если у тебя там вещественное число в виде строки с точкой приходит, а надо с запятой, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 13:15 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Пробовал и целые и с запятой и с точной. Все не то). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 13:31 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Koldun451//А здесь косяк. Значения получаются все, корме нужного float C = ntohl(*((float*)Time_ptr));а почему это должно работать ? Код: plaintext 1. 2. 3. 4. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 15:24 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное. Все понятно, теперь точно разберусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 15:49 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
ещё как заметил Quadrix - float скорее всего передаётся в виде строки, и в pg_dump.c есть такой кусок: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 16:04 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
т.е. получается, просто считать значения типа float4(8) из Постгресса функцией PQgetvalue в переменную типа float никак нельзя(((((? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 17:39 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Код: plaintext -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 19:02 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Нет, как ни странно, даже вообще не меняет первоначальное значение C. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 19:21 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Нет, вообще никак не выходит. Если только обрезать дробную часть и приводить к целому, как уже оговаривалось. Вообще как-то странно, что такая возможность не предусмотрена явно. Не свои же типы данных вводить самом деле, а забивать на точность ну никак нельзя((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2008, 01:41 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Koldun451, как Вы выполняете запрос ? через PQexec или через PQexecParams ? покажите. Возможно у Вас просто NULL в Time ? Какой тип у поля Time ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2008, 16:31 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
http://www.postgresql.org/docs/current/static/libpq-example.html читали ? -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2008, 16:32 |
|
||
|
ntohl и значения типа float
|
|||
|---|---|---|---|
|
#18+
Есть в аналах Postgres еще функции))))))) void pq_sendfloat4(StringInfo buf, float4 f) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 02:12 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35655341&tid=2003867]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 332ms |

| 0 / 0 |
