Я просматриваю код из Google Closure Library, и я нашел эту строку:
var isNegative = number < 0.0 || number == 0.0 && 1 / number < 0.0;
Я понял, что причиной такой изначально странно выглядящей контрольной проверки является идентификация -0
как отрицательной, но есть ли какая-то причина использовать 0.0
вместо 0
?