Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Post History

50%
+0 −0
Q&A Compile-time rounding with the pre-processor

If you can truncate (get the floor() of a number), then you can round the number by adding 0.5 first. Or, I suppose that, for the sake of completeness, you add "the equivalent of 0.5," since a giv...

posted 4mo ago by John C‭

Answer
#1: Initial revision by user avatar John C‭ · 2026-06-01T21:52:19Z (4 months ago)
If you can truncate (get the `floor()` of a number), then you can round the number by adding 0.5 first.  Or, I suppose that, for the sake of completeness, you add "the equivalent of 0.5," since a given program might not represent the values in decimal or you might want to round to a non-ones position in the number.

When you round numbers (and you know this, otherwise you wouldn't make the distinction, but to explain beyond "add a half"), a (decimal) digit of five or higher bumps the next-most-significant place up by one, otherwise you round.  Assuming rounding to the nearest integer, then, from 0.0 to 0.49&#773;, adding 0.5 increases to 0.5 to 0.99&#773;, so truncation goes to the lower value.  Anything higher crosses the threshold to the next integer, so truncation gives you that higher value.