Subroutine ecvt, fcvt oder gcvt
Zweck
Konvertiert eine Gleitkommazahl in eine Zeichenfolge.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <stdlib.h> double Value;
int NumberOfDigits, *DecimalPointer, *Sign;
char *fcvt (Value, NumberOfDigits, DecimalPointer, Sign;)
double Value;
int NumberOfDigits, *DecimalPointer, *Sign;
Beschreibung
Die Subroutinen Ecvt, FCVTund GCVT konvertieren Gleitkommazahlen in Zeichenfolgen.
Die Subroutine Ecvt konvertiert den Parameter Wert in eine auf null endende Zeichenfolge und gibt einen Zeiger darauf zurück. Der Parameter NumberOfDigits gibt die Anzahl der Ziffern in der Zeichenkette an. Die niedrigstwertige Ziffer wird entsprechend dem aktuellen Rundungsmodus gerundet. Die Subroutine ecvt setzt die ganze Zahl, auf die der Parameter DecimalPointer verweist, auf die Position des Dezimalzeichens relativ zum Anfang der Zeichenfolge. (Eine negative Zahl bedeutet, dass der Dezimalpunkt links von den in der Zeichenkette angegebenen Ziffern steht) Das Dezimalzeichen selbst ist nicht in der Zeichenfolge enthalten. Die Subroutine Ecvt setzt auch die ganze Zahl, auf die der Parameter Signieren verweist, auf einen Wert ungleich null, wenn der Parameter Wert negativ ist, und legt andernfalls den Wert 0 fest.
Das Unterprogramm fcvt arbeitet identisch mit dem Unterprogramm ecvt, mit dem Unterschied, dass die korrekte Ziffer für die Ausgabe im C- oder FORTRAN-F-Format auf die durch den Parameter NumberOfDigits angegebene Anzahl von Ziffern gerundet wird.
Die Subroutine GCVT konvertiert den Parameter Wert in eine auf null endende Zeichenfolge, speichert sie in dem Array, auf das der Parameter Puffer verweist, und gibt dann den Parameter Puffer zurück. Das Unterprogramm gcvt versucht, eine Zeichenkette mit den signifikanten Ziffern des Parameters NumberOfDigits im FORTRAN-F-Format zu erzeugen. Ist dies nicht möglich, wird das E-Format verwendet. Die Subroutine GCVT unterdrückt abschließende Nullen. Die Zeichenfolge ist druckbereit, je nach Bedarf mit Minuszeichen, Dezimalzeichen oder Exponent. Das Radixzeichen wird durch die aktuelle Ländereinstellung bestimmt (siehe Subroutine setlocale ). Wenn die Subroutine setlocale nicht erfolgreich aufgerufen wurde, wird die Standardländereinstellung POSIXverwendet. Die Standardländereinstellung gibt . an. (Punkt) als Radixzeichen. Die Kategorie LC_NUMERISCH bestimmt den Wert des Radixzeichens innerhalb der aktuellen Ländereinstellung.
Die Subroutinen Ecvt, FCVTund GCVT stellen die folgenden Sonderwerte dar, die in den ANSI/IEEE-Standards 754-1985 und 854-1987 für Gleitkommaarithmetik angegeben sind:
| Element | Beschreibung |
|---|---|
| Ruhig NaN | Gibt eine stille Nichtzahl an (NaNQ). |
| Signalisierung NaN | Zeigt ein NaNS -Signal an. |
| Unendlich | Gibt einen INF-Wert an |
Das diesen Werten zugeordnete Vorzeichen wird im Parameter Signieren gespeichert.
Parameter
| Element | Beschreibung |
|---|---|
| Wert | Gibt einen Gleitkommawert mit doppelter Genauigkeit an. |
| NumberOfDigits | Gibt die Anzahl der Ziffern in der Zeichenfolge an |
| DecimalPointer | Gibt die Position des Dezimalzeichens relativ zum Anfang der Zeichenfolge an. |
| Unterzeichnen | Gibt an, dass das dem Rückgabewert zugeordnete Vorzeichen in den Parameter Signieren eingefügt wird. Da in IEEE-Gleitkommazahlen 0 signiert werden kann, wird der Parameter Signieren für 0 mit Vorzeichen entsprechend gesetzt. |
| Puffer | Gibt einen Zeichenbereich für die Zeichenfolge an. |