This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit fd1292e588bfbd0b0b63ae56cf316faf2df00537
Author: Schamschi <heinrich.bo...@gmx.at>
AuthorDate: Wed Jun 26 03:31:01 2019 +0200

    NUMBERS-120: Repair BigFraction.floatValue()
---
 .../org/apache/commons/numbers/fraction/BigFraction.java  | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

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 6de8f37..3a1a63d 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
@@ -887,20 +887,7 @@ public class BigFraction extends Number implements 
Comparable<BigFraction>, Seri
      */
     @Override
     public float floatValue() {
-        float floatNum = numerator.floatValue();
-        float floatDen = denominator.floatValue();
-        float result = floatNum / floatDen;
-        if (Float.isInfinite(floatNum) ||
-            Float.isInfinite(floatDen) ||
-            Float.isNaN(result)) {
-            // Numerator and/or denominator must be out of range:
-            // Calculate how far to shift them to put them in range.
-            int shift = Math.max(numerator.bitLength(),
-                                 denominator.bitLength()) - 
Math.getExponent(Float.MAX_VALUE);
-            result = numerator.shiftRight(shift).floatValue() /
-                denominator.shiftRight(shift).floatValue();
-        }
-        return result;
+        return Float.intBitsToFloat((int) toFloatingPointBits(8, 23));
     }
 
     /**

Reply via email to