Float Hakkında Birkaç soru

Başlatan kaan0, 27 Aralık 2012, 03:23:19

kaan0

ADC ile voltmetre-ampermetre devresi yapıyorum yazılım kısmında sona geldim fakat çözemediğim birkaç şey var

1-Float veri tipini 5 basamağa nasıl yuvarlayabilirim.

2-FloatToStr ile ADC'den okuduğum değeri gerekli sayılarla çarpıp LCD'ye gönderiyorum değer 1'den büyükse sorun olmuyor fakat 1'den küçük olunca (örneğin 0.050) yine 5.0 olarak gözüküyor yani başına 0 gelmiyor derleyici olarak MikroC kullanıyorum Bahsettiğim kodlar ise şu şekilde;

  volt1 = Adc_Read(0);
  amper1 = Adc_Read(1);
  volt2 = (volt1/42.62467);
  amper2 = (amper1/127.875);
  
  FloatToStr(volt2, voltlcd);
  FloatToStr(amper2, amperlcd);
  delay_ms(50);

  Lcd_Out(1,1,"VOLTAJ: ");
  Lcd_Out(1,9,voltlcd);
  Lcd_Out(1,14,"  V");
  Lcd_Out(2,1,"AKIM  : ");
  Lcd_Out(2,9,amperlcd);
  Lcd_Out(2,14,"  A");

Mr.Java

ANSi C dilinde bu şekilde.MikroC'de aynı şekildedir kesin.

#include<stdio.h>
int main( )
{
    int bolunen = 5, bolen = 2;
    float bolum;

    bolum = (float)bolunen / bolen;
    printf("Sonuc: %f\n",bolum);
   return 0;
}

Programımızı derleyip çalıştırdığımızda ekran çıktısı olarak Sonuc: 2.500000 görünecektir. Eğer sadece 2.5 olarak görmek istersek %.1f koyarak bunu sağlayabiliriz. %x.yf'i açıklamaya çalışalım. % den sonra gelen x toplam kaç karakterden oluşacağını, y ondalık kısımda kaç hanenin görülmesini istediğimizi belirtir. Yukardaki sonuç için %.2f =2.50 , %.3f=2.500, %.4f=2.5000 sonuçlarını verir.

kaan0

Alıntı yapılan: Fkarizmatik - 27 Aralık 2012, 22:40:08
ANSi C dilinde bu şekilde.MikroC'de aynı şekildedir kesin.

#include<stdio.h>
int main( )
{
    int bolunen = 5, bolen = 2;
    float bolum;

    bolum = (float)bolunen / bolen;
    printf("Sonuc: %f\n",bolum);
   return 0;
}

Programımızı derleyip çalıştırdığımızda ekran çıktısı olarak Sonuc: 2.500000 görünecektir. Eğer sadece 2.5 olarak görmek istersek %.1f koyarak bunu sağlayabiliriz. %x.yf'i açıklamaya çalışalım. % den sonra gelen x toplam kaç karakterden oluşacağını, y ondalık kısımda kaç hanenin görülmesini istediğimizi belirtir. Yukardaki sonuç için %.2f =2.50 , %.3f=2.500, %.4f=2.5000 sonuçlarını verir.

çok teşekkür ederim cevabınız için mikroC'de bu iş sprintf ile yapılıyormuş tabi derleyici demo olduğu için derlerken demo limit diyor başka bir çaresine bakacağım artık..