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
Ö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;
Şö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.
@aykuto
Evet tam aradığım buydu
SAĞOLASIN