class

Float

@Serializable { simple=true }
const class Float : Num

Float is used to represent a 64-bit floating point number.

constructors fromStr

Parse a Str into a Float

fields e

Float value for e which is the base of natural logarithms

negInf

Float value for negative infinity

pi

Float value for pi which is the ratio of the circumference of a circle to its diameter

nan

Float value for Not-A-Number

posInf

Float value for positive infinity

defVal

Default value is 0f

methods mod

Return remainder of this divided by b

mult

Multiply this with b

cos

Return the cosine of this angle in radians

isNaN

Return if this is Float.nan

atan

Return the arc tangent

div

Divide this by b

sqrt

Return square root of this value

exp

Return e raised to this power

clamp

Clamp this float between the min and max

atan2

Converts rectangular coordinates (x, y) to polar (r, theta)

tan

Return tangent of this angle in radians

toStr

Get string representation according to the lexical representation defined by Section 3.2.5 of XML Schema Part 2

sinh

Return hyperbolic sine

toCode

Get this Float as a Fantom code literal

bits

Return 64-bit representation according IEEE 754 floating-point double format bit layout

toDegrees

Convert this angle in radians to an angle in degrees

acos

Return the arc cosine

ceil

Returns the smallest whole number greater than or equal to this number

plus

Add this with b

divDecimal

Divide this by b

makeBits32

Make a Float for the specified 32-bit representation according IEEE 754 floating-point single format bit layout

normNegZero

If this value is negative zero then return normalized zero, otherwise return this value

divInt

Divide this by b

hash

Return bits()

isNegZero

Return if this is negative zero value

minus

Subtract b from this

compare

Compare based on floating point value

log

Return natural logarithm of this number

log10

Return base 10 logarithm of this number

modInt

Return remainder of this divided by b

increment

Increment by one

multInt

Multiply this with b

plusDecimal

Add this with b

random

Generate a random float between 0.0 inclusive and 1.0 exclusive

tanh

Return hyperbolic tangent

min

Return the smaller of this and the specified Float values

minusDecimal

Subtract b from this

pow

Return this value raised to the specified power

sin

Return sine of this angle in radians

bits32

Return 32-bit representation according IEEE 754 floating-point single format bit layout

floor

Returns the largest whole number less than or equal to this number

plusInt

Add this with b

toLocale

Format this floating point number for the current locale

modDecimal

Return remainder of this divided by b

max

Return the larger of this and the specified Float values

toRadians

Convert this angle in degrees to an angle in radians

cosh

Return the hyperbolic cosine

abs

Return the absolute value of this float

round

Returns the nearest whole number to this number

makeBits

Make a Float for the specified 64-bit representation according IEEE 754 floating-point double format bit layout

decrement

Decrement by one

minusInt

Subtract b from this

negate

Negative of this

equals

Return true if same float value

asin

Return the arc sine

multDecimal

Multiply this with b

approx

Return if this Float is approximately equal to the given Float by the specified tolerance

abs Float abs()

Return the absolute value of this float. If this value is positive then return this, otherwise return the negation.

acos Float acos()

Return the arc cosine.

approx Bool approx(Float r, Float? tolerance)

Return if this Float is approximately equal to the given Float by the specified tolerance. If tolerance is null, then it is computed using the magnitude of the two Floats. It is useful for comparing Floats since often they lose a bit of precision during manipulation. This method is equivalent to:

if (tolerance == null) tolerance = min(abs(this/1e6), abs(r/1e6))
(this - r).abs < tolerance

asin Float asin()

Return the arc sine.

atan Float atan()

Return the arc tangent.

atan2 static Float atan2(Float y, Float x)

Converts rectangular coordinates (x, y) to polar (r, theta).

bits Int bits()

Return 64-bit representation according IEEE 754 floating-point double format bit layout. This method is paired with Float.makeBits.

bits32 Int bits32()

Return 32-bit representation according IEEE 754 floating-point single format bit layout. This method is paired with Float.makeBits32.

ceil Float ceil()

Returns the smallest whole number greater than or equal to this number.

clamp Float clamp(Float min, Float max)

Clamp this float between the min and max. If its less than min then return min, if its greater than max return max, otherwise return this float itself.

compare virtual Int compare(Obj obj)

Compare based on floating point value.

NaN works as follows:

  • for the <=> operator NaN is always less than other values and equal to itself (so sort works as expected)
  • for all other comparison operators anything compared against NaN is false (normal Java semanatics)

Examples:

Float.nan <=> Float.nan  =>  0
2f <=> Float.nan         =>  1
Float.nan <=> 2f         =>  -1
2f < Float.nan           =>  false
Float.nan < 2f           =>  false
Float.nan <= Float.nan   =>  false

cos Float cos()

Return the cosine of this angle in radians.

cosh Float cosh()

Return the hyperbolic cosine.

decrement @Operator
Float decrement()

Decrement by one. Shortcut is --a or a--.

defVal const static Float : defVal

Default value is 0f.

div @Operator
Float div(Float b)

Divide this by b. Shortcut is a/b.

divDecimal @Operator
Decimal divDecimal(Decimal b)

Divide this by b. Shortcut is a/b.

divInt @Operator
Float divInt(Int b)

Divide this by b. Shortcut is a/b.

e const static Float : e

Float value for e which is the base of natural logarithms.

equals virtual Bool equals(Obj? obj)

Return true if same float value. Like Java, NaN != NaN. Also see compare.

exp Float exp()

Return e raised to this power.

floor Float floor()

Returns the largest whole number less than or equal to this number.

fromStr static new fromStr(Str s, Bool checked)

Parse a Str into a Float. Representations for infinity and not-a-number are "-INF", "INF", "NaN". This string format matches the lexical representation of Section 3.2.5 of XML Schema Part 2. If invalid format and checked is false return null, otherwise throw ParseErr.

hash virtual Int hash()

Return bits().

increment @Operator
Float increment()

Increment by one. Shortcut is ++a or a++.

isNaN Bool isNaN()

Return if this is Float.nan. Also see compare.

isNegZero Bool isNegZero()

Return if this is negative zero value.

log Float log()

Return natural logarithm of this number.

log10 Float log10()

Return base 10 logarithm of this number.

makeBits static Float makeBits(Int bits)

Make a Float for the specified 64-bit representation according IEEE 754 floating-point double format bit layout. This method is paired with Float.bits.

makeBits32 static Float makeBits32(Int bits)

Make a Float for the specified 32-bit representation according IEEE 754 floating-point single format bit layout. This method is paired with Float.bits32.

max Float max(Float that)

Return the larger of this and the specified Float values.

min Float min(Float that)

Return the smaller of this and the specified Float values.

minus @Operator
Float minus(Float b)

Subtract b from this. Shortcut is a-b.

minusDecimal @Operator
Decimal minusDecimal(Decimal b)

Subtract b from this. Shortcut is a-b.

minusInt @Operator
Float minusInt(Int b)

Subtract b from this. Shortcut is a-b.

mod @Operator
Float mod(Float b)

Return remainder of this divided by b. Shortcut is a%b.

modDecimal @Operator
Decimal modDecimal(Decimal b)

Return remainder of this divided by b. Shortcut is a%b.

modInt @Operator
Float modInt(Int b)

Return remainder of this divided by b. Shortcut is a%b.

mult @Operator
Float mult(Float b)

Multiply this with b. Shortcut is a*b.

multDecimal @Operator
Decimal multDecimal(Decimal b)

Multiply this with b. Shortcut is a*b.

multInt @Operator
Float multInt(Int b)

Multiply this with b. Shortcut is a*b.

nan const static Float : nan

Float value for Not-A-Number.

negInf const static Float : negInf

Float value for negative infinity.

negate @Operator
Float negate()

Negative of this. Shortcut is -a.

normNegZero Float normNegZero()

If this value is negative zero then return normalized zero, otherwise return this value.

pi const static Float : pi

Float value for pi which is the ratio of the circumference of a circle to its diameter.

plus @Operator
Float plus(Float b)

Add this with b. Shortcut is a+b.

plusDecimal @Operator
Decimal plusDecimal(Decimal b)

Add this with b. Shortcut is a+b.

plusInt @Operator
Float plusInt(Int b)

Add this with b. Shortcut is a+b.

posInf const static Float : posInf

Float value for positive infinity.

pow Float pow(Float pow)

Return this value raised to the specified power.

random static Float random()

Generate a random float between 0.0 inclusive and 1.0 exclusive. Also see Int.random, Range.random, List.random, and Random.

round Float round()

Returns the nearest whole number to this number.

sin Float sin()

Return sine of this angle in radians.

sinh Float sinh()

Return hyperbolic sine.

sqrt Float sqrt()

Return square root of this value.

tan Float tan()

Return tangent of this angle in radians.

tanh Float tanh()

Return hyperbolic tangent.

toCode Str toCode()

Get this Float as a Fantom code literal.

toDegrees Float toDegrees()

Convert this angle in radians to an angle in degrees.

toLocale Str toLocale(Str? pattern, Locale locale)

Format this floating point number for the current locale. If pattern is null, then the locale's default pattern is used. Also see Num.localeDecimal, Num.localeGrouping, etc.

The pattern format:

#   optional digit
0   required digit
.   decimal point
,   grouping separator (only last one before decimal matters)

Examples:

12345.786f.toLocale("#,###.0")  =>  12,345.8
7.1234f.toLocale("#.000")       =>  7.123
0.1234f.toLocale("#.000")       =>  .123
0.1234f.toLocale("0.00")        =>  0.12
70.12f.toLocale("0.0000")       =>  70.1200

toRadians Float toRadians()

Convert this angle in degrees to an angle in radians.

toStr virtual Str toStr()

Get string representation according to the lexical representation defined by Section 3.2.5 of XML Schema Part 2. Representations for infinity and not-a-number are "-INF", "INF", "NaN".

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST