Hallo Leute,
lt. C-API-Dokumentation ist doch der Datentyp FLOAT 64 bit lang:
"...The internal representation of this structure is EXACTLY the same as a 64-bit IEEE floating point number (defined by the Microsoft C compiler as "double")..."
Das selbe trifft lt. Dokumentation für den Datentyp NUMBER zu.
Jetzt habe ich in C mal folgendes probiert (64-bit-Umgebung; 64-bit-Kompilierung):
sizeof(FLOAT)
sizeof(NUMBER)
Dabei liefert ersteres einen Wert von
4 und letzteres einen Wert von
8 zurück.
Kann sich das jemand erklären?Hintergrund meiner Frage ist das Nutzen der Funktion NSFSearch (siehe
http://atnotes.de/index.php/topic,50726.0.html) und der dabei angesteuerten Callbackfunktion, welche wiederum aus der DB alle Items ausliest. Als von der IBM mitgeliefertes Beispiel (samples/admin/find_dbs) wird hier u.a. folgender Quelltext verwendet:
...
#define NUMERIC_SIZE sizeof(FLOAT)
case TYPE_NUMBER:
memcpy (&numeric_item, summary_position, NUMERIC_SIZE);
sprintf (item_text, "%g", numeric_item);
break;
...
Viele Grüße
David