Classes | Math

# Float : SimpleNumber : Number : Magnitude : Object

64-bit Floating point number
Source: Float.sc

## Description

A 64-bit double precision floating point number. Float inherits most of its behaviour from its superclass.

Note that despite its name, FloatArray only holds 32-bit (single precision) floats. For a raw array of 64-bit floats, use DoubleArray.

## Class Methods

### Float.from32Bits(word)

#### Returns:

a new Float from a 32-bit word.

### Float.from64Bits(hiWord, loWord)

#### Returns:

a new Float from a 64-bit word.

## Instance Methods

### .do(function)

iterates a Function from `0` to `this-1`. See also: Integer: -do, Collection: -do

#### Arguments:

 function The function to iterate.

### .reverseDo(function)

iterates function from this-1 to 0

#### Arguments:

 function The function to iterate.

### .coin

Let x be the receiver clipped to the range [0, 1]. With probability x, return true. With probability 1 - x, return false.

### .xrand2

#### Returns:

a random float from this.neg to this, excluding the value exclude.

### .isFloat

#### Returns:

`true` since this is a Float.

### .asFloat

#### Returns:

`this` since this is a Float.

### .as32Bits

#### Returns:

an Integer which is the bit pattern of this as a 32bit single precision float

### .high32Bits

#### Returns:

an Integer which is the bit pattern of high 32-bits of the 64-bit double precision floating point value

### .low32Bits

#### Returns:

an Integer which is the bit pattern of high 32-bits of the 64-bit double precision floating point value

### .asCompileString

#### Returns:

a string that when interpreted matches the receiver, if the number is within the range given in `storeOn`.

### .asStringPrec(precision)

Returns a string representation of the number, with the desired precision (i.e. number of significant figures).

### Using Floats as replacement for Integers

In SuperCollider, Floats are 64-bit wide. Because an Integer is 32-bit, it can only capture integers in the range `-2147483648 .. +2147483647`, or about `2 x 10^9`.

Therefore, in some situations it can be useful to calculate with floats also when only whole numbers are needed. You can use 64-bit floats for integer calculations up to `± 9007199254740992` (`2^53`, or about `9 x 10^15`). Sometimes one can go even further (see example below).

Here is a classical example for an algorithm:

Testing the limits of 64-bit float (2^53)