BigFraction: Mantissa cannot be zero in subnormal number
Since the value has already been tested against zero any sub-normal
number has a non-zero mantissa.
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
index d71c1db..996899f 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
@@ -252,12 +252,10 @@
int k;
if (exponent == 0) {
+ // Subnormal number, the effective exponent bias is 1022, not 1023.
+ // Note: mantissa is never zero as that case has been eliminated.
m = mantissa;
- k = 0; // For simplicity, when number is 0.
- if (m != 0) {
- // Subnormal number, the effective exponent bias is 1022, not 1023.
- k = -1074;
- }
+ k = -1074;
} else {
// Normalized number: Add the implicit most significant bit.
m = mantissa | 0x0010000000000000L;