PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
-
Erik_Lind
- Inlägg: 97
- Blev medlem: 2 maj 2005, 11:25:03
Inlägg
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
-
strombom
- Inlägg: 3305
- Blev medlem: 27 maj 2003, 10:50:20
- Ort: Västra Götaland
-
Kontakt:
Inlägg
av strombom »
om du skriver:
(980 + 195/2) / 195
(1000 + 195/2) / 195
(1150 + 195/2) / 195
-
AndLi
- Inlägg: 18274
- Blev medlem: 11 februari 2004, 18:17:59
- Ort: Knivsta
-
Kontakt:
Inlägg
av AndLi »
plus på med ett innan du delar så blir avrundningen rätt.
-
cykze
- EF Sponsor
- Inlägg: 1539
- Blev medlem: 8 april 2004, 10:40:28
- Ort: Uppsala
Inlägg
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!
-
Erik_Lind
- Inlägg: 97
- Blev medlem: 2 maj 2005, 11:25:03
Inlägg
av Erik_Lind »
Tackar för svaren!
Trevlig helg.
/erik