PDA

View Full Version : [c++] Funzione Approssimazione all'intero + vicino


AYAMY
25-02-2007, 11:30
Ciao a tutti...
Ho il seguente problema.. devo approssimare una serie di numeri (che di certo saranno float) all'intero più vicino... ad esempio
se ho
10.2 e 10.8.. il primo deve diventare 10 ed il secondo 11
Mi sapreste dare una mano?

Grazie

Simo

JavHack
25-02-2007, 13:19
Dovresti sottrarre al numero il cast int di se stesso, e quindi otterresti un valore compreso tra 0.0 e 0.9, quindi nel caso questo valore superi 0.5 restituisci il cast +1 altrimenti il solo cast.

cionci
25-02-2007, 13:28
Così dovrebbe andare:

double round(double num)
{
double diff = abs(num - (int)num);

if((diff >= 0.5 && num < 0) || (diff < 0.5 && num >= 0)
return (int)num - 1;

return (int)num + 1;
}

AYAMY
25-02-2007, 13:42
..adesso di sicuro mi ci mandate...
Non devo approssimare all'intero + vicino.. ma a quello superiore....
Sorry...
Mi sapreste dire come fare?

Grazie

adesso ci provo io.. prendendo spunto dal programmino appena postato..

double round(double num)
{

return (int)num + 1;
}

in sostanza a 9.2 gli prendo la parte intera.. cioè 9 e gli sommo una unità..
problema risolto..

Grazie ancora!!!

cionci
25-02-2007, 14:19
Giusto...mi dimenticavo di ceil e floor ;)

AYAMY
25-02-2007, 14:43
grazie ragà siete il top!!!