Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

FLOAT

Başlatan kalman, 01 Mayıs 2007, 17:34:20

kalman

Float bir sayıyı örneğin 12.62 den    12.50 ye çevirmek veya   12.63    12.75 e çevirmek istiyorum aradaki farkı hesaplayıp yukarı veya aşağı 0.25 basamaklarla  LCD de yazdırmak için CCS C de Fonksiyon mevcut mu???


herkese Selamlar

d_yol

Öyle fonksyon yok. Kendin hesaplaman lazım.
Belki böyle yapabilirsin (ama denemdim):

#include <math.h>

double x, y, n, t1, t2, t3, t4, t5, p;

x = 12.62;
n = modf(x, &y); // x ---> n = 12; y = 0.62
t1 = fabs(y - 0.0); // 0.62
t2 = fabs(y - 0.25); // 0.37
t3 = fabs(y - 0.5); // 0.12
t4 = fabs(y - 0.75); // 0.13
t5 = fabs(y - 1.0); //  0.38

if (t1 < t2)
{
    y = t1;
    p = 0.0;
}
else
{
    y = t2;
    p = 0.25;
}

if (t3 < y)
{
    y = t3;
    p = 0.5;
}

if (t4 < y)
{
    y = t4;
    p = 0.75;
}

if (t5 < y)
{
    p = 1.0;
}

x = n + p;

aykuto

Şöyle bir kod daha pratik olur sanırım:

float cevir(float s)
{
 float c;

   c=s*4.0;
   if(c-floor(c)<.5) c=floor(c); else c=floor(c)+1;
   return(c*.25);
}


Bu kodu CCS ile de denedim.

cevir(12.62) --> 12.50
cevir(12.63) --> 12.75
cevir(12.12) --> 12.00
cevir(12.13) --> 12.25

Umarım işinize yarar.

kalman

@aykuto

Evet tam aradığım buydu

SAĞOLASIN