An IEEE 754 64-bit floating point number. A Float is capable of approximately representing numeric values between:

  • 2-1022, approximately 1.79769×10308, and
  • (2-2-52)×21023, approximately 5×10-324.

Zero is represented by distinct instances +0.0, -0.0, but these instances are equal.

In addition, the following special values exist:

  • infinity and -infinity, and
  • undefined values.

As required by the IEEE standard, an undefined value, often denoted NaN, is not equal to any other value, nor even to itself. Thus, the definition of equals() for Float violates the general contract defined by Object.equals().

A floating point value with a zero fractionalPart is considered equal to its integer part.

Literal floating point values are written with a decimal point and, optionally, a magnitude or exponent:

1.0
1.0E6
1.0M
1.0E-6
1.0u

In the case of a fractional magnitude, the decimal point is optional. Underscores may be used to group digits into groups of three.

See also parseFloat()

no subtypes hierarchy

Initializer
Float(Float float)
Attributes
finiteSource Codeshared Boolean finite

Determines whether this value is finite. Produces false for infinity, -infinity, and undefined.

See also infinite, infinity
fractionalPartSource Codeshared actual Float fractionalPart

The fractional part of this number, after truncation of the integral part. For Integral numeric types, the fractional part is always zero.

hashSource Codeshared actual Integer hash

The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:

  • if x==y then x.hash==y.hash.

Therefore, a class which refines Object.equals() must also refine hash.

Refines Object.hash
infiniteSource Codeshared Boolean infinite

Determines whether this value is infinite in magnitude. Produces true for infinity and -infinity. Produces false for a finite number, +0.0, -0.0, or undefined.

See also infinity, finite
integerSource Codeshared Integer integer

This value, represented as an Integer, after truncation of its fractional part, if such a representation is possible.

Throws
magnitudeSource Codeshared actual Float magnitude

The magnitude of this number, defined for any instance x as:

  • -x if x<0, or
  • x otherwise,

where 0 is the additive identity. Hence:

  • x.magnitude >= 0 for any x, and
  • x.magnitude == 0 if and only if x==0.
negatedSource Codeshared actual Float negated

The additive inverse of this value.

negativeSource Codeshared actual Boolean negative

Determines if this value is a negative number or -infinity. Produces false for a positive number, +0.0, -0.0, or undefined.

positiveSource Codeshared actual Boolean positive

Determines if this value is a positive number or infinity. Produces false for a negative number, +0.0, -0.0, or undefined.

signSource Codeshared actual Integer sign

The sign of this value. Produces 1 for a positive number or infinity. Produces -1 for a negative number or -infinity. Produces 0.0 for +0.0, -0.0, or undefined.

Refines Number.sign
strictlyNegativeSource Codeshared Boolean strictlyNegative

Determines if this value is a negative number, -0.0, or -infinity. Produces false for a positive number, +0.0, or undefined.

strictlyPositiveSource Codeshared Boolean strictlyPositive

Determines if this value is a positive number, +0.0, or infinity. Produces false for a negative number, -0.0, or undefined.

stringSource Codeshared actual String string

A developer-friendly string representing the instance. Concatenates the name of the concrete class of the instance with the hash of the instance. Subclasses are encouraged to refine this implementation to produce a more meaningful representation.

undefinedSource Codeshared Boolean undefined

Determines whether this value is undefined (that is, Not a Number or NaN). The undefined value has the property that it is not equal (==) to itself, and as a consequence the undefined value cannot sensibly be used in most collections.

wholePartSource Codeshared actual Float wholePart

The integral value of the number after truncation of the fractional part. For Integral numeric types, the integral value of a number is the number itself.

Inherited Attributes
Attributes inherited from: Invertible<Other>
Attributes inherited from: Number<Other>
Methods
compareSource Codeshared actual Comparison compare(Float other)

Compares this value with the given value. Implementations must respect the constraints that:

  • x==y if and only if x<=>y == equal (consistency with equals()),
  • if x>y then y<x (symmetry), and
  • if x>y and y>z then x>z (transitivity).
dividedSource Codeshared actual Float divided(Float other)

The quotient obtained by dividing this number by the given number. For integral numeric types, this operation results in a remainder.

When the given number is 0, the additive identity, the behavior depends on the numeric type:

  • For some numeric types, including Integer, division by 0 results in an exception.
  • For others, including Float, it results in a special value of the type, for example, infinity.
equalsSource Codeshared actual Boolean equals(Object that)

Determines if the given object is equal to this Float, that is, if:

  • the given object is also a Float,
  • neither this value nor the given value is undefined, and either
  • both values are infinite and have the same sign, or both represent the same finite floating point value as defined by the IEEE specification.

Or if:

largerThanSource Codeshared actual Boolean largerThan(Float other)

Determines if this value is strictly larger than the given value.

minusSource Codeshared actual Float minus(Float other)

The difference between this number and the given number. Must produce the value x + -y.

notLargerThanSource Codeshared actual Boolean notLargerThan(Float other)

Determines if this value is smaller than or equal to the given value.

notSmallerThanSource Codeshared actual Boolean notSmallerThan(Float other)

Determines if this value is larger than or equal to the given value.

plusSource Codeshared actual Float plus(Float other)

The result of adding the given value to this value. This operation should never perform any kind of mutation upon either the receiving value or the argument value.

plusIntegerSource Codeshared actual Float plusInteger(Integer integer)

The result of adding this number to the given Integer.

powerSource Codeshared actual Float power(Float other)

The result of raising this number to the given power.

powerOfIntegerSource Codeshared actual Float powerOfInteger(Integer integer)

The result of raising this number to the given non-negative Integer power. For a negative power, the behavior is implementation-dependent.

smallerThanSource Codeshared actual Boolean smallerThan(Float other)

Determines if this value is strictly smaller than the given value.

timesSource Codeshared actual Float times(Float other)

The product of this number and the given number.

timesIntegerSource Codeshared actual Float timesInteger(Integer integer)

The result of multiplying this number by the given Integer.

Inherited Methods
Methods inherited from: Comparable<Other>
Methods inherited from: Exponentiable<This,Other>
Methods inherited from: Invertible<Other>
Methods inherited from: Number<Other>
Methods inherited from: Numeric<Other>
Methods inherited from: Summable<Other>