Use "rint()" instead of rounding manually with "+ 0.5"

rint() is "round to nearest integer", and does a better job than +0.5
(followed by the implicit truncation inherent in integer casting).  We
already used 'rint()' for values that could be negative (where +0.5 is
actively wrong), let's just make it consistent.

Of course, as is usual for the messy C math functions, it depends on the
current rounding mode.  But the default round-to-nearest is what we want
and use, and the functions that explicitly always round to nearest
aren't standard enough to worry about.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Linus Torvalds 2014-02-12 14:19:53 -08:00 committed by Dirk Hohndel
parent 7ae05b4f71
commit 23baf20f56
8 changed files with 38 additions and 38 deletions

View file

@ -329,9 +329,9 @@ void uemis_parse_divelog_binary(char *base64, void *datap) {
* we store the incorrect working pressure to get the SAC calculations "close"
* but the user will have to correct this manually
*/
dive->cylinder[i].type.size.mliter = volume;
dive->cylinder[i].type.size.mliter = rint(volume);
dive->cylinder[i].type.workingpressure.mbar = 202600;
dive->cylinder[i].gasmix.o2.permille = *(uint8_t *)(data+120+25*(gasoffset + i)) * 10 + 0.5;
dive->cylinder[i].gasmix.o2.permille = *(uint8_t *)(data+120+25*(gasoffset + i)) * 10;
dive->cylinder[i].gasmix.he.permille = 0;
}
/* first byte of divelog data is at offset 0x123 */