Sida 1 av 1

Räkna om 0-50000 till 0-255 med avrundning(C)

Postat: 14 oktober 2005, 15:14:31
av Erik_Lind
Behöver räkna om ett tal mellan 0-50000 till 0-255.

Men jag får problem med att decimalvärden kapas bort utan avrundning.

50.000/256 = ~195.

Vid omräkning blir då
T.ex:
980 / 195 = 5,02 tolkas som 5
1000 / 195 = 5,12 tolkas som 5
1150 / 195 = 5,89 tolkas som 5

Jag skulle vilja ha en avrundning så
T.ex
5,4 = 5
och
5,5 = 6

Finns det något smidigt sätt att lösa detta i ren C?
Använder WinAVR(GCC)

/Erik

Postat: 14 oktober 2005, 15:32:22
av strombom
om du skriver:

(980 + 195/2) / 195
(1000 + 195/2) / 195
(1150 + 195/2) / 195

Postat: 14 oktober 2005, 16:05:05
av AndLi
plus på med ett innan du delar så blir avrundningen rätt.

Postat: 14 oktober 2005, 16:31:52
av cykze
talet / 195.0 + 0.5 brukar fungera annars, fast det kanske tar lite längre tid. Tänk på att du kan få talet 256 när du delar 50000 med 195!

Postat: 14 oktober 2005, 16:42:43
av Erik_Lind
Tackar för svaren!
Trevlig helg.

/erik