|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
[c++] Funzione Approssimazione all'intero + vicino
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 |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Oct 2005
Messaggi: 17
|
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.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Così dovrebbe andare:
Codice:
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; } |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
..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!!! Ultima modifica di AYAMY : 25-02-2007 alle 13:54. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Giusto...mi dimenticavo di ceil e floor
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
grazie ragà siete il top!!!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:12.