As a literal, the compiler should see that the return value of `fabs()` is double and then automatically know that `0` should also be a double as part of the comparison.  This would be true for other literals such as `0x0`, etc.  Since this is C++ however, it may also be possible that there is some overload for `operator==(souble, int)` depending on the compiler implementation.  I'll make these `0.0`, to be explicit.