345 * </i>{@code .} <i>HexDigits</i>
346 * </dl>
347 *
348 * <dl>
349 * <dt><i>BinaryExponent:</i>
350 * <dd><i>BinaryExponentIndicator SignedInteger</i>
351 * </dl>
352 *
353 * <dl>
354 * <dt><i>BinaryExponentIndicator:</i>
355 * <dd>{@code p}
356 * <dd>{@code P}
357 * </dl>
358 *
359 * </blockquote>
360 *
361 * where <i>Sign</i>, <i>FloatingPointLiteral</i>,
362 * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
363 * <i>FloatTypeSuffix</i> are as defined in the lexical structure
364 * sections of
365 * <cite>The Java™ Language Specification</cite>,
366 * except that underscores are not accepted between digits.
367 * If {@code s} does not have the form of
368 * a <i>FloatValue</i>, then a {@code NumberFormatException}
369 * is thrown. Otherwise, {@code s} is regarded as
370 * representing an exact decimal value in the usual
371 * "computerized scientific notation" or as an exact
372 * hexadecimal value; this exact numerical value is then
373 * conceptually converted to an "infinitely precise"
374 * binary value that is then rounded to type {@code float}
375 * by the usual round-to-nearest rule of IEEE 754 floating-point
376 * arithmetic, which includes preserving the sign of a zero
377 * value.
378 *
379 * Note that the round-to-nearest rule also implies overflow and
380 * underflow behaviour; if the exact value of {@code s} is large
381 * enough in magnitude (greater than or equal to ({@link
382 * #MAX_VALUE} + {@link Math#ulp(float) ulp(MAX_VALUE)}/2),
383 * rounding to {@code float} will result in an infinity and if the
384 * exact value of {@code s} is small enough in magnitude (less
385 * than or equal to {@link #MIN_VALUE}/2), rounding to float will
|
345 * </i>{@code .} <i>HexDigits</i>
346 * </dl>
347 *
348 * <dl>
349 * <dt><i>BinaryExponent:</i>
350 * <dd><i>BinaryExponentIndicator SignedInteger</i>
351 * </dl>
352 *
353 * <dl>
354 * <dt><i>BinaryExponentIndicator:</i>
355 * <dd>{@code p}
356 * <dd>{@code P}
357 * </dl>
358 *
359 * </blockquote>
360 *
361 * where <i>Sign</i>, <i>FloatingPointLiteral</i>,
362 * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
363 * <i>FloatTypeSuffix</i> are as defined in the lexical structure
364 * sections of
365 * <cite>The Java Language Specification</cite>,
366 * except that underscores are not accepted between digits.
367 * If {@code s} does not have the form of
368 * a <i>FloatValue</i>, then a {@code NumberFormatException}
369 * is thrown. Otherwise, {@code s} is regarded as
370 * representing an exact decimal value in the usual
371 * "computerized scientific notation" or as an exact
372 * hexadecimal value; this exact numerical value is then
373 * conceptually converted to an "infinitely precise"
374 * binary value that is then rounded to type {@code float}
375 * by the usual round-to-nearest rule of IEEE 754 floating-point
376 * arithmetic, which includes preserving the sign of a zero
377 * value.
378 *
379 * Note that the round-to-nearest rule also implies overflow and
380 * underflow behaviour; if the exact value of {@code s} is large
381 * enough in magnitude (greater than or equal to ({@link
382 * #MAX_VALUE} + {@link Math#ulp(float) ulp(MAX_VALUE)}/2),
383 * rounding to {@code float} will result in an infinity and if the
384 * exact value of {@code s} is small enough in magnitude (less
385 * than or equal to {@link #MIN_VALUE}/2), rounding to float will
|