[c++] Zaokrąglanie liczb całkowitych


(Mnemonic) #1

Cześć, szukam jakiegoś pomysłu na zaokrąglanie liczb całkowitych, mam tu na myśli zaokrąglenie np. liczby 11 do wartości 10, a liczby 18 do wartości 20. Może być także zaokrąglanie co 5 liczb, czyli np. liczba 17 zostaje zaokrąglona do wartości 15. Jak coś takiego napisać?


(Fiołek) #2
(int)((float)liczba / 10.0f + 0.5f) * 10

?


(Mnemonic) #3

Może być, dzięki.


([alex]) #4

Fiołek , wystarczy:

10*(int)(liczba/10.+0.5)

dla zaokrąglenia do 5:

5*(int)(liczba/5.+0.5)


(Fiołek) #5

Wiem, że int/float daje float(czy tam int/double daje double), ale dla większej czytelności wolałem dać jawną konwersję - a nuż autor o tym nie wie i się będzie głowił :wink:


([alex]) #6

Fiołek , a na ten przypadek to chyba powinieneś ten kod zaopatrzyć w obfite komentarze.


(Fiołek) #7

Oj, wybacz. Zapomniałem... Obiecuję poprawę.

(int)((float)liczba / 10.0f + 0.5f) * 10 //Bardzo obfity komentarz specjalnie dla alex

:wink: