Float sayılarda yuvarlama nasıl yapılır

Başlatan t2, 22 Şubat 2011, 13:44:18

t2

ADC sonucu okuduk, ölçeklendirdik ve 2.246 diye bulduk varsayalım. 

bunun son rakamı sürekli oynuyor. ben bunu iptal etmek istiyorum.  Ekranda göstermek sorun değil  fakat ben  2.24 diye alıp diğer işlemlerde kullanacağım. Yuvarlama işlemini nasıl yaparım?

drmp

derleyicide böyle bir komutun oldunu hatırlıyor gibiyim ama tam emin değilim bir subrutin yazabilirsin   mesala if x < 5 or not   son basamaktan başlarsın çok da zor görünmüyor  aslında

FUNKY

#2
MAXSIM  hoca şu kodu vermişti denermisin

Float_Rounding = Off
3.7
çıkan sonuç 3


Float_Rounding = On
3.7
çıkan sonuç 4



https://www.picproje.org/index.php/topic,31406.msg218956.html#msg218956

NaMcHo

unsigned int a;
float b=2.246;
a=(unsigned int)100*b;
b=a/100;

t2

Tamamdır.  100le çarpıyoruz, float olmayan başka değişkene eşitliyoruz.
Sonra 100e bölerek orijinal (float) haline eşitliyoruz.

Elektroemre

Hocam, eğer ',' den sonra isteğiniz küsürat sabit ise (mesela virgülden sonra sadece 3 hane lazımsa) floata hiç bulaşmayın.
Normal DWORD tipinde değişkenle okuduğunuz ADC değerini (istediğiniz küsürata göre) 100'le 1000'le vs genişletip kullanın.
Ekrana yazdırmak istediğinizdede tam ve ','den sonra kısımı ayırıp öyle yazdırın.
Float hesaplamaları küçük MCU'larda çok süre alıyor ve fazla yer kaplıyor (ROM hafızasında - float hesaplama rutinleri).