Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: inu am 21.01.11 - 16:12:24
-
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