From: chris@... Date: 2020-08-01T12:50:48+00:00 Subject: [ruby-core:99434] [Ruby master Bug#17098] Float#negative? reports negative zero as not negative Issue #17098 has been updated by chrisseaton (Chris Seaton). My suggestion is that `Float#negative?(neg_zero) == true` and `Float#positive?(pos_zero) == false`. We can't get rid of negative zero - it's a standard part of floating point numbers as implemented by the hardware. It's also useful in some applications. ---------------------------------------- Bug #17098: Float#negative? reports negative zero as not negative https://bugs.ruby-lang.org/issues/17098#change-86887 * Author: chrisseaton (Chris Seaton) * Status: Open * Priority: Normal * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- Is this intended behaviour? ``` irb(main):001:0> neg_zero = -0.0 => -0.0 irb(main):002:0> neg_zero.negative? => false irb(main):003:0> neg_zero < 0 => false ``` It happens because `Numeric#negative?` uses `< 0`. My understanding of IEEE floating point is that negative zero is not less than zero, but I think it should still report as negative. -- https://bugs.ruby-lang.org/ Unsubscribe: