Bir arkadaşın hi-tech C de, sprintf fonksiyonu ile karekter katarına dönüştürdüğü kayar noktalı sayının LCD de gösteremediğini söylemesi üzerine, ben de IAR da denedim. IAR 'da da sonuç aynıydı.
char buffer[8];
float sayi=15,45;
sprintf(buffer,"%f",sayi);
ANSI uyumlu bir derleyici, normal olarak sprintf fonksiyonu sonucu buffer katarını oluşturmalı değil mi?
Hi-Tech deki sprintf fonksiyonu float sayı tiplerini karakter katarına çeviremiyor. Ancak tamsayı tipleri çevirebiliyor. Sanırım fonksiyonu fazla şişirmemek için böyle bir şey yapmışlar. Eskiden bir ara bende problem yaşamıştım. Sayının tam ve kesirli kısmını birbirinden ayırarak problemi çözmüştüm. Sorunuzda çözüm istememişsiniz, o yüzden uğraşmadım. Çözemezseniz eski defterleri karıştırabilirim. Kolay gelsin.
Şuan böyle bir gereksinimim olmadığından çözüm aramayada çalışmadım. Sadece paylaşmak ve varsa kısa yoldan bu problem nasıl çözülür, belki bilmediğimiz başka bir yöntemi vardır onu öğrenmek istemiştim.
Tamsayı tipleri çevirebiliyor evet ama bu yeterli değil tabi. SDCC de bunu deneyeceğim bir ara.
Hatırladığım kadarı ile bu sorun kırılmış Hi-Tech derleyicide oluyordu. Orijinalde yokt. Yada ben öyle hatırlıyorum.