src/share/classes/java/lang/Double.java

Print this page

        

*** 274,284 **** /* * Modeled after the "a" conversion specifier in C99, section * 7.19.6.1; however, the output of this method is more * tightly specified. */ ! if (!FpUtils.isFinite(d) ) // For infinity and NaN, use the decimal output. return Double.toString(d); else { // Initialized to maximum size of output. StringBuffer answer = new StringBuffer(24); --- 274,284 ---- /* * Modeled after the "a" conversion specifier in C99, section * 7.19.6.1; however, the output of this method is more * tightly specified. */ ! if (!isFinite(d) ) // For infinity and NaN, use the decimal output. return Double.toString(d); else { // Initialized to maximum size of output. StringBuffer answer = new StringBuffer(24);
*** 546,556 **** * * @param v the value to be tested. * @return {@code true} if the value of the argument is NaN; * {@code false} otherwise. */ ! static public boolean isNaN(double v) { return (v != v); } /** * Returns {@code true} if the specified number is infinitely --- 546,556 ---- * * @param v the value to be tested. * @return {@code true} if the value of the argument is NaN; * {@code false} otherwise. */ ! public static boolean isNaN(double v) { return (v != v); } /** * Returns {@code true} if the specified number is infinitely
*** 558,572 **** * * @param v the value to be tested. * @return {@code true} if the value of the argument is positive * infinity or negative infinity; {@code false} otherwise. */ ! static public boolean isInfinite(double v) { return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY); } /** * The value of the Double. * * @serial */ private final double value; --- 558,586 ---- * * @param v the value to be tested. * @return {@code true} if the value of the argument is positive * infinity or negative infinity; {@code false} otherwise. */ ! public static boolean isInfinite(double v) { return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY); } /** + * Returns {@code true} if the argument is a finite floating-point + * value; returns {@code false} otherwise (for NaN and infinity + * arguments). + * + * @param d the {@code double} value to be tested + * @return {@code true} if the argument is a finite + * floating-point value, {@code false} otherwise. + * @since 1.8 + */ + public static boolean isFinite(double d) { + return Math.abs(d) <= DoubleConsts.MAX_VALUE; + } + + /** * The value of the Double. * * @serial */ private final double value;