java.lang
Class Float

java.lang.Object
  extended by java.lang.Number
      extended by java.lang.Float
All Implemented Interfaces:
Comparable

public final class Float
extends Number
implements Comparable

Instances of class Float represent primitive float values. Additionally, this class provides various helper functions and variables related to floats.

Since:
1.0

Field Summary
static float MAX_VALUE
          The maximum positive value a double may represent is 3.4028235e+38f.
static float MIN_VALUE
          The minimum positive value a float may represent is 1.4e-45.
static float NaN
          All IEEE 754 values of NaN have the same value in Java.
static float NEGATIVE_INFINITY
          The value of a float representation -1.0/0.0, negative infinity.
static float POSITIVE_INFINITY
          The value of a float representation 1.0/0.0, positive infinity.
static int SIZE
          The number of bits needed to represent a float.
static Class TYPE
          The primitive type float is represented by this Class object.
 
Constructor Summary
Float(double value)
          Create a Float from the primitive double specified.
Float(float value)
          Create a Float from the primitive float specified.
Float(String s)
          Create a Float from the specified String.
 
Method Summary
 byte byteValue()
          Return the value of this Float as a byte.
static int compare(float x, float y)
          Behaves like new Float(x).compareTo(new Float(y)); in other words this compares two floats, special casing NaN and zero, without the overhead of objects.
 int compareTo(Float f)
          Compare two Floats numerically by comparing their float values.
 int compareTo(Object o)
          Behaves like compareTo(Float) unless the Object is not an Float.
 double doubleValue()
          Return the value of this Float as a double
 boolean equals(Object obj)
          Returns true if obj is an instance of Float and represents the same float value.
 float floatValue()
          Return the value of this Float.
 int hashCode()
          Return a hashcode representing this Object.
 int intValue()
          Return the value of this Integer as an int.
 boolean isInfinite()
          Return true if the value of this Float is the same as NEGATIVE_INFINITY or POSITIVE_INFINITY, otherwise return false.
static boolean isInfinite(float v)
          Return true if the float has a value equal to either NEGATIVE_INFINITY or POSITIVE_INFINITY, otherwise return false.
 boolean isNaN()
          Return true if the value of this Float is the same as NaN, otherwise return false.
static boolean isNaN(float v)
          Return true if the float has the same value as NaN, otherwise return false.
 long longValue()
          Return the value of this Integer as a long.
static float parseFloat(String str)
          Parse the specified String as a float.
 short shortValue()
          Return the value of this Float as a short.
 String toString()
          Convert the float value of this Float to a String.
static String toString(float f)
          Convert the float to a String.
static Float valueOf(float val)
          Returns a Float object wrapping the value.
static Float valueOf(String s)
          Creates a new Float object using the String.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_VALUE

public static final float MAX_VALUE
The maximum positive value a double may represent is 3.4028235e+38f.

See Also:
Constant Field Values

MIN_VALUE

public static final float MIN_VALUE
The minimum positive value a float may represent is 1.4e-45.

See Also:
Constant Field Values

NEGATIVE_INFINITY

public static final float NEGATIVE_INFINITY
The value of a float representation -1.0/0.0, negative infinity.

See Also:
Constant Field Values

POSITIVE_INFINITY

public static final float POSITIVE_INFINITY
The value of a float representation 1.0/0.0, positive infinity.

See Also:
Constant Field Values

NaN

public static final float NaN
All IEEE 754 values of NaN have the same value in Java.

See Also:
Constant Field Values

TYPE

public static final Class TYPE
The primitive type float is represented by this Class object.

Since:
1.1

SIZE

public static final int SIZE
The number of bits needed to represent a float.

Since:
1.5
See Also:
Constant Field Values
Constructor Detail

Float

public Float(float value)
Create a Float from the primitive float specified.

Parameters:
value - the float argument

Float

public Float(double value)
Create a Float from the primitive double specified.

Parameters:
value - the double argument

Float

public Float(String s)
Create a Float from the specified String. This method calls Float.parseFloat().

Parameters:
s - the String to convert
Throws:
NumberFormatException - if s cannot be parsed as a float
NullPointerException - if s is null
See Also:
parseFloat(String)
Method Detail

toString

public static String toString(float f)
Convert the float to a String. Floating-point string representation is fairly complex: here is a rundown of the possible values. "[-]" indicates that a negative sign will be printed if the value (or exponent) is negative. "<number>" means a string of digits ('0' to '9'). "<digit>" means a single digit ('0' to '9').
Value of FloatString Representation
[+-] 0 [-]0.0
Between [+-] 10-3 and 107, exclusive [-]number.number
Other numeric value [-]<digit>.<number> E[-]<number>
[+-] infinity [-]Infinity
NaN NaN
Yes, negative zero is a possible value. Note that there is always a . and at least one digit printed after it: even if the number is 3, it will be printed as 3.0. After the ".", all digits will be printed except trailing zeros. The result is rounded to the shortest decimal number which will parse back to the same float.

To create other output formats, use java.text.NumberFormat.

Parameters:
f - the float to convert
Returns:
the String representing the float

valueOf

public static Float valueOf(String s)
Creates a new Float object using the String.

Parameters:
s - the String to convert
Returns:
the new Float
Throws:
NumberFormatException - if s cannot be parsed as a float
NullPointerException - if s is null
See Also:
parseFloat(String)

valueOf

public static Float valueOf(float val)
Returns a Float object wrapping the value. In contrast to the Float constructor, this method may cache some values. It is used by boxing conversion.

Parameters:
val - the value to wrap
Returns:
the Float
Since:
1.5

parseFloat

public static float parseFloat(String str)
Parse the specified String as a float. The extended BNF grammar is as follows:
 DecodableString:
      ( [ - | + ] NaN )
    | ( [ - | + ] Infinity )
    | ( [ - | + ] FloatingPoint
              [ f | F | d
                | D] )
 FloatingPoint:
      ( { Digit }+ [ . { Digit } ]
              [ Exponent ] )
    | ( . { Digit }+ [ Exponent ] )
 Exponent:
      ( ( e | E )
              [ - | + ] { Digit }+ )
 Digit: '0' through '9'
 

NaN and infinity are special cases, to allow parsing of the output of toString. Otherwise, the result is determined by calculating n * 10exponent to infinite precision, then rounding to the nearest float. Remember that many numbers cannot be precisely represented in floating point. In case of overflow, infinity is used, and in case of underflow, signed zero is used. Unlike Integer.parseInt, this does not accept Unicode digits outside the ASCII range.

If an unexpected character is found in the String, a NumberFormatException will be thrown. Leading and trailing 'whitespace' is ignored via String.trim(), but spaces internal to the actual number are not allowed.

To parse numbers according to another format, consider using java.text.NumberFormat.

Parameters:
str - the String to convert
Returns:
the float value of s
Throws:
NumberFormatException - if s cannot be parsed as a float
NullPointerException - if s is null
Since:
1.2
See Also:
MIN_VALUE, MAX_VALUE, POSITIVE_INFINITY, NEGATIVE_INFINITY

isNaN

public static boolean isNaN(float v)
Return true if the float has the same value as NaN, otherwise return false.

Parameters:
v - the float to compare
Returns:
whether the argument is NaN

isInfinite

public static boolean isInfinite(float v)
Return true if the float has a value equal to either NEGATIVE_INFINITY or POSITIVE_INFINITY, otherwise return false.

Parameters:
v - the float to compare
Returns:
whether the argument is (-/+) infinity

isNaN

public boolean isNaN()
Return true if the value of this Float is the same as NaN, otherwise return false.

Returns:
whether this Float is NaN

isInfinite

public boolean isInfinite()
Return true if the value of this Float is the same as NEGATIVE_INFINITY or POSITIVE_INFINITY, otherwise return false.

Returns:
whether this Float is (-/+) infinity

toString

public String toString()
Convert the float value of this Float to a String. This method calls Float.toString(float) to do its dirty work.

Overrides:
toString in class Object
Returns:
the String representation
See Also:
toString(float)

byteValue

public byte byteValue()
Return the value of this Float as a byte.

Overrides:
byteValue in class Number
Returns:
the byte value
Since:
1.1

shortValue

public short shortValue()
Return the value of this Float as a short.

Overrides:
shortValue in class Number
Returns:
the short value
Since:
1.1

intValue

public int intValue()
Return the value of this Integer as an int.

Specified by:
intValue in class Number
Returns:
the int value

longValue

public long longValue()
Return the value of this Integer as a long.

Specified by:
longValue in class Number
Returns:
the long value

floatValue

public float floatValue()
Return the value of this Float.

Specified by:
floatValue in class Number
Returns:
the float value

doubleValue

public double doubleValue()
Return the value of this Float as a double

Specified by:
doubleValue in class Number
Returns:
the double value

hashCode

public int hashCode()
Return a hashcode representing this Object. Float's hash code is calculated by calling floatToIntBits(floatValue()).

Overrides:
hashCode in class Object
Returns:
this Object's hash code
See Also:
#floatToIntBits(float)

equals

public boolean equals(Object obj)
Returns true if obj is an instance of Float and represents the same float value. Unlike comparing two floats with ==, this treats two instances of Float.NaN as equal, but treats 0.0 and -0.0 as unequal.

Note that f1.equals(f2) is identical to floatToIntBits(f1.floatValue()) == floatToIntBits(f2.floatValue()).

Overrides:
equals in class Object
Parameters:
obj - the object to compare
Returns:
whether the objects are semantically equal
See Also:
Object.hashCode()

compareTo

public int compareTo(Float f)
Compare two Floats numerically by comparing their float values. The result is positive if the first is greater, negative if the second is greater, and 0 if the two are equal. However, this special cases NaN and signed zero as follows: NaN is considered greater than all other floats, including POSITIVE_INFINITY, and positive zero is considered greater than negative zero.

Parameters:
f - the Float to compare
Returns:
the comparison
Since:
1.2

compareTo

public int compareTo(Object o)
Behaves like compareTo(Float) unless the Object is not an Float.

Specified by:
compareTo in interface Comparable
Parameters:
o - the object to compare
Returns:
the comparison
Throws:
ClassCastException - if the argument is not a Float
Since:
1.2
See Also:
compareTo(Float), Comparable

compare

public static int compare(float x,
                          float y)
Behaves like new Float(x).compareTo(new Float(y)); in other words this compares two floats, special casing NaN and zero, without the overhead of objects.

Parameters:
x - the first float to compare
y - the second float to compare
Returns:
the comparison
Since:
1.4