Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

round() fonksiyonu yuvarlatma?

Başlatan mcihangir, 12 Eylül 2004, 22:52:20

mcihangir

float olarak tanımlanmış bir değişkenim var ve bu program içerisinde oldukca küsüratlı bir değer alabiliyor ancak ben ondalıklı kısmın sadece  iki basamağını almak istiyorum. Örnek;

k=12,236789505;

bu sayıyı k=12,24; olarak yuvarlamak istiyorum bunun nasıl yapabilirim. örnek kod yazarsanız sevinirim.

bir de yuvarladığım bu sayıyı lcd'ye yazdıracağım bunu nasıl yapabilirim.
bu ondalıklı sayıyı tam ve ondalık  kısımlarına ayırıp öyle yazdırmayı düşünüyorum. Yani;
k=12,24; bu sayıyı a=12; ve b=24; olarak nasıl ayırabilirim.

bu arada ben HT-PICC kullanıyorum.

ete

Selam,

C bilmiyorum ama işin nasıla yapılabileceğini biliyorum. Anlatayım sen C ye adapta et.

Önece  k=tamsayı(12,236789505  x 100
dolayısıyla K=1236 oldu
               K1=Tamsayı(1236/100) = 12 oldu
               K2=Tamsayı (1236 Mod 100)=36 olur

Pic Basıc te bu çok kolay şöyleki;

K=K x 100
K1= K/100
K2= K//100

bu kadar.

Kolay Gelsin
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

DumrulBey

Merhaba,

C'de, LCD'ye göndermeden veya veriyi işlerken "%6.3f" parametrelerini kullanırız. Buradaki 3'ü 2 olarak değiştirirsen virgülden sonra iki rakam gözükür. Ama bu işlem programlama belleğini (ROM) hatırı sayılır ölçüde harcar. Dolayısıyla Erol'un bahsettiği gibi çözümleri uygulayabilirsin. Ama uğraşmak istemiyorsan genel kullanım bu şekildedir. Örneğin LCD için:
void main() {
   float xSay;
   xSay=123,456789;
   lcd_init();
   while (1) {
    printf(lcd_putc, "\f%6.2f", xSay);
    delay_ms(500);
   }
}

xSay, başlangıçta 123,456789 şeklinde gözükürken 123,45 şeklinde LCD'ye yansıyacaktır. Eğer bilgileri işleyeceksen bir diziye de aktarabilirsin. Ayrıca tam sayıyı ayırmak için floor() komutu işini görebilir.

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)