Eski Moda System V Sayıdan Dizgeye Dönüşüm İşlevleri
Önceki XX. Oylum - Aritmetik İşlevleri Sonraki
Eski Moda System V Sayıdan Dizgeye Dönüşüm İşlevleri
Eski System V C kütüphanesi sayıları dizgelere çeviren, kullanımı zor ve kullanışsız üç işlev içerir. GNU C kütüphanesi bu işlevleri bazı doğal oluşumlarla birlikte içerir.
Bu işlevler sadece glibc'de ve AT&T Unix soyundan gelen sistemlerde vardır. Bu bakımdan, bunlara özellikle ihtiyaç duymuyorsanız bunların yerine standart olan sprintf'i kullanmak daha iyidir.
Bu işlevlerin tamamı stdlib.h dosyasında bildirilmiştir.
char *ecvt
(double değer,
 int    hane-sayısı,
 int   *ondalık-nokta,
 int   *negatif)
işlev
ecvt işlevi değer gerçek sayısını en fazla hane-sayısı onluk rakama dönüştürür. Dönen dizge ondalık noktayı ve işareti içermez. Dizgenin ilk rakamı sıfırdan farklıdır (değer sıfır olmadıkça) ve son rakan en yakına yuvarlanır. *ondalık-nokta'ya ondalık noktadan sonraki ilk hanenin indisi yerleşir. değer negatifse *negatif'e sıfırdan farklı bir değer, değilse sıfır yerleşir.
Eğer hane-sayısı rakam double türünün hassasiyetini aşarsa sisteme özel değere düşürülür.
Dönen dizge durağan olarak ayrıldığından işlevin sonraki çağrıları bunun üzerine yazar.
Eğer değer sıfırsa, *ondalık-nokta'nın 0 mı yoksa 1 mi olacağı gerçeklemeye bağlıdır.
Örnek: ecvt (12.3, 5, &d, &n) çağrısı "12300" ile döner ve d'ye 2, n'ye 0 atanır.
char *fcvt
(double değer,
 int    hane-sayısı,
 int   *ondalık-nokta,
 int   *negatif)
işlev
fcvt işlevi hane-sayısı'nın ondalık noktadan sonraki hane sayısını göstermesi dışında ecvt gibidir. Eğer hane-sayısı sıfırdan küçükse, değer ondalık noktanın solundaki hane-sayısı+1'inci haneye yuvarlanır. Örneğin, hane-sayısı -1 ise, değer en yakın 10'a yuvarlanır. Eğer hane-sayısı negatifse ve değer'deki ondalık noktanın solundaki hane sayısından daha büyükse, değer bir en kıymetli rakama yuvarlanacaktır.
Eğer hane-sayısı rakam double türünün hassasiyetini aşarsa sisteme özel değere düşürülür.
Dönen dizge durağan olarak ayrıldığından işlevin sonraki çağrıları bunun üzerine yazar.
char *fcvt
(double değer,
 int    hane-sayısı,
 char  *tampon)
işlev
gcvt işlevi sprintf(tampon, "%*g", hanesayisi, deger çağrısına eşdeğerdir. Sadece uyumluluk adına vardır. tampon ile döner.
Eğer hane-sayısı rakam double türünün hassasiyetini aşarsa sisteme özel değere düşürülür.
Bu üç işleve ek olarak, GNU C kütüphanesi bu işlevlerin long double argüman alan sürümlerini de içerir.
char *qecvt
(long double değer,
 int         hane-sayısı,
 int        *ondalık-nokta,
 int        *negatif)
işlev
Bu işlev ilk parametresinde long double argüman alması ve hane-sayısı'nı long double hassasiyeti ile sınırlaması dışında ecvt işlevinin benzeridir.
char *qfcvt
(long double değer,
 int         hane-sayısı,
 int        *ondalık-nokta,
 int        *negatif)
işlev
Bu işlev ilk parametresinde long double argüman alması ve hane-sayısı'nı long double hassasiyeti ile sınırlaması dışında fcvt işlevinin benzeridir.
char *qgcvt
(long double değer,
 int         hane-sayısı,
 char       *tampon)
işlev
Bu işlev ilk parametresinde long double argüman alması ve hane-sayısı'nı long double hassasiyeti ile sınırlaması dışında gcvt işlevinin benzeridir.
ecvt ve fcvt işlevleri ve onların long double eşdeğerlerinde, dönen dizge durağan olarak ayrıldığından işlevin sonraki çağrıları bunun üzerine yazar. GNU C kütüphanesi ek işlevlerin dönen dizgeyi kullanıcı tanımlı tampona yazarak döndüğü sürümlerini de içerir. Bunların isimleri teamüen _r soneki alır.
gcvt işlevi zaten kullanıcı tanımlı tampon kullandığından onun için bir gcvt_r işlevi yoktur.
int ecvt_r
(double değer,
 int    hane-sayısı,
 int   *ondalık-nokta,
 int   *negatif,
 char  *tampon,
 size_t uzunluk)
işlev
ecvt_r işlevi, sonucu uzunluk uzunluktaki kullanıcı tanımlı tampon'a yerleştirmesi dışında ecvt işlevi ile aynıdır. Bir hata durumunda dönüş değeri -1, aksi takdirde sıfırdır.
Bu işlev bir GNU oluşumudur.
int fcvt_r
(double değer,
 int    hane-sayısı,
 int   *ondalık-nokta,
 int   *negatif,
 char  *tampon,
 size_t uzunluk)
işlev
fcvt_r işlevi, sonucu uzunluk uzunluktaki kullanıcı tanımlı tampon'a yerleştirmesi dışında fcvt işlevi ile aynıdır. Bir hata durumunda dönüş değeri -1, aksi takdirde sıfırdır.
Bu işlev bir GNU oluşumudur.
int qecvt_r
(long double değer,
 int         hane-sayısı,
 int        *ondalık-nokta,
 int        *negatif,
 char       *tampon,
 size_t      uzunluk)
işlev
qecvt_r işlevi, sonucu uzunluk uzunluktaki kullanıcı tanımlı tampon'a yerleştirmesi dışında qecvt işlevi ile aynıdır. Bir hata durumunda dönüş değeri -1, aksi takdirde sıfırdır.
Bu işlev bir GNU oluşumudur.
int qfcvt_r
(long double değer,
 int         hane-sayısı,
 int        *ondalık-nokta,
 int        *negatif,
 char       *tampon,
 size_t      uzunluk)
işlev
qfcvt_r işlevi, sonucu uzunluk uzunluktaki kullanıcı tanımlı tampon'a yerleştirmesi dışında qfcvt işlevi ile aynıdır.Bir hata durumunda dönüş değeri -1, aksi takdirde sıfırdır.
Bu işlev bir GNU oluşumudur.
Önceki Üst Ana Başlık Sonraki
Gerçek Sayıların Çözümlenmesi Başlangıç XXI. Oylum - Tarih ve Zaman
Bir Linux Kitaplığı Sayfası