question: public static java . lang . String toString ( float d ) { float m = Math . abs ( d ) ; if ( d == POSITIVE_INFINITY ) { return "Infinity" ; } else if ( d == NEGATIVE_INFINITY ) { return "-Infinity" ; } else if ( d == 0 ) { return "0.0" ; } else if ( m >= 1e-3 && m < 1e7 ) { String str = toStringImpl ( d , false ) ; char [ ] chars = str . toCharArray ( ) ; int i = chars . length - 1 ; char c ; while ( i >= 0 && ( c = chars [ i ] ) == '0' ) { i -- ; } if ( i < 0 || str . indexOf ( '.' ) == - 1 ) { return str ; } else if ( chars [ i ] == '.' || chars [ i ] == ',' ) { i ++ ; } return str . substring ( 0 , i + 1 ) ; } else { return toStringImpl ( d , true ) ; } }
target:  Returns a String representation for the specified float value. The argument is converted to a readable string format as follows. All characters and characters in strings mentioned below are ASCII characters. If the argument is NaN, the result is the string "NaN". Otherwise, the result is a string that represents the sign and magnitude (absolute value) of the argument. If the sign is negative, the first character of the result is '-' ('-'); if the sign is positive, no sign character appears in the result. As for the magnitude m: If m is infinity, it is represented by the characters "Infinity"; thus, positive infinity produces the result "Infinity" and negative infinity produces the result "-Infinity". If m is zero, it is represented by the characters "0.0"; thus, negative zero produces the result "-0.0" and positive zero produces the result "0.0". If m is greater than or equal to 10-3 but less than 107, then it is represented as the integer part of m, in decimal form with no leading zeroes, followed by '.' (.), followed by one or more decimal digits representing the fractional part of m. If m is less than 10-3 or not less than 107, then it is represented in so-called "computerized scientific notation." Let n be the unique integer such that 10n =m 1; then let a be the mathematically exact quotient of m and 10n so that 1 a&lt10. The magnitude is then represented as the integer part of a, as a single decimal digit, followed by '.' (.), followed by decimal digits representing the fractional part of a, followed by the letter 'E' (E), followed by a representation of n as a decimal integer, as produced by the method of one argument. How many digits must be printed for the fractional part of m or a? There must be at least one digit to represent the fractional part, and beyond that as many, but only as many, more digits as are needed to uniquely distinguish the argument value from adjacent values of type float. That is, suppose that x is the exact mathematical value represented by the decimal representation produced by this method for a finite nonzero argument f. Then f must be the float value nearest to x; or, if two float values are equally close to xthen f must be one of them and the least significant bit of the significand of f must be 0.