Hacker News new | ask | show | jobs
Why you should be careful about 'optimizations' (arcanis.github.com)
5 points by Arcanis 5166 days ago
2 comments

> So 5.4 | 0 will gives 5, which is a flooring operation. However, -5.4 will give -5. And that’s a ceiling operation.

So, | is actually doing a round toward zero. It seems like the problem described is actually caused by simply misunderstanding what the floor function does (round toward negative infinity).

I sympathise, but doing bitwise operations on floating point values without care is just asking for it