Ondalık sayılar ile işlem hakkında

tunahurgh

Üye
Katılım
2 Mar 2021
Mesajlar
26
Puanları
1
Yaş
40
Merhaba arkadaşlar,
programımda girilen iki değeri oranlama işlemi yapmak istiyorum. Kod parçası aşağıdaki gibidir.

ama ekrana yanlış değer yazıyor. acaba başka kullanmam gereken kütüphane mi var?

Kod:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>


void main()
{
unsigned int16 musluk_acik_suresi;
unsigned int istenen_agirlik, oranlanacak_agirlik;

while(1)
   {   
         musluk_acik_suresi = (3000 * istenen_agirlik) / oranlanacak_agirlik;  //istenen_agirlik ve oranlanacak_agirlik giriliyor.
      
         printf(lcd_putc,"%lu", musluk_acik_suresi);                           // ekrana yanlıs deger yaziyor
   }

}
 
musluk acık süresini float tipi degişken seçin.
Yazdırma kısmındada float olarak yazdırın.
yukarda yazdıgınız şekilde yaparsanız bölme işleminden sonra virgülden sonraki kısmı siler.sadece integer kısmını yazdırır.
 
musluk acık süresini float tipi degişken seçin.
Yazdırma kısmındada float olarak yazdırın.
yukarda yazdıgınız şekilde yaparsanız bölme işleminden sonra virgülden sonraki kısmı siler.sadece integer kısmını yazdırır.
Evet dün gece uğraşırken sorunu çözdüm. Dediğiniz gibi öncelikle değişkeni float yapmam gerekiyordu.
Float yaptıktan sonra hala virgül sonrasındakileri vermiyordu. Sonra bir forumda yapılan işlemdeki değişkenlerin en az birinin float türünden olması gerektiğini okudum. Yani kodu aşağıdaki haline getirdim.

Kod:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>


void main()
{
float musluk_acik_suresi;
unsigned int istenen_agirlik, oranlanacak_agirlik;

while(1)
   { 
         musluk_acik_suresi = ((float)(3000 * istenen_agirlik)) / oranlanacak_agirlik;  //istenen_agirlik ve oranlanacak_agirlik giriliyor.
    
         printf(lcd_putc,"%f", musluk_acik_suresi);                           // ekrana yanlıs deger yaziyor
   }

}

böylece sorunum çözüldü.

bu arada ,
"((float)(3000 * istenen_agirlik)) / oranlanacak_agirlık;" ifadesini,

"(3000.0 * istenen_agirlik) / oranlanacak_agirlik;" şeklinde yazınca da çalıştı.

Enteresan bir bilgi oldu benim için. Arkadaşlar faydalansın
 

Yeni mesajlar

Forum istatistikleri

Konular
128,190
Mesajlar
915,721
Kullanıcılar
449,957
Son üye
sezercakmak

Yeni konular

Geri
Üst