diff --git a/core/math/integers/integers-tests.factor b/core/math/integers/integers-tests.factor index 76ce162d7d..44c038b6ee 100644 --- a/core/math/integers/integers-tests.factor +++ b/core/math/integers/integers-tests.factor @@ -229,3 +229,4 @@ unit-test ! Ensure that /f is accurate for fixnums > 2^53 on 64-bit platforms [ HEX: 1.758bec11492f9p-54 ] [ 1 12345678901234567 /f ] unit-test +[ HEX: -1.758bec11492f9p-54 ] [ 1 -12345678901234567 /f ] unit-test diff --git a/core/math/integers/integers.factor b/core/math/integers/integers.factor index da8b8b9edc..eb94597160 100644 --- a/core/math/integers/integers.factor +++ b/core/math/integers/integers.factor @@ -41,7 +41,7 @@ CONSTANT: bignum/f-threshold HEX: 20,0000,0000,0000 [ >float ] bi@ float/f ; inline M: fixnum /f - 2dup [ bignum/f-threshold >= ] either? + 2dup [ abs bignum/f-threshold >= ] either? [ bignum/f ] [ fixnum/f ] if ; inline M: fixnum mod fixnum-mod ; inline