You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2019/08/08 17:30:29 UTC
[commons-numbers] 06/18: NUMBERS-120: Repair
BigFraction.floatValue()
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 <he...@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));
}
/**