# Float Type
The `Float` type represents a double-precision 64-bit floating-point number (IEEE 754).
## Literals
Floats are defined using a decimal point. Scientific notation is also supported using the `e` or `E` suffix. You can use type inference or explicit typing.
```pascal
// Type inference
var f1 := 1.234;
var f2 := 1.0;
var f3 := 1e-3; // 0.001
// Explicit typing
var pi : Float := 3.14159;
var avogadro : Float := 6.022e23;
// OUTPUT NONE
```
## Operations
Standard arithmetic operators apply: `+`, `-`, `*`, and `/` (floating-point division).
```pascal
var x := 10 / 3; // 3.33333333333333
// OUTPUT NONE
```
## Formatting
To control the precision when converting to a string, use the `FloatToStr` function or `.ToString` with parameters.
```pascal
var f := 1.234567;
PrintLn(f.ToString); // "1.234567"
PrintLn(FloatToStr(f, 2)); // "1.23"
// OUTPUT
// 1.234567
// 1.23
```
## Special Values
The Float type supports IEEE 754 special values for representing infinity and invalid operations.
* `INF`: Positive Infinity (e.g., `1.0 / 0.0`)
* `NegINF`: Negative Infinity (e.g., `-1.0 / 0.0`)
* `NaN`: Not a Number (e.g., `0.0 / 0.0` or `Sqrt(-1)`)
You can check for these values using the helper functions:
* `IsNaN(val)`
* `IsInfinite(val)`
```pascal
var x := 1.0 / 0.0;
if IsInfinite(x) then
PrintLn('Infinity reachable');
// OUTPUT
// Infinity reachable
```
:::info
### Related Reference
* **[Math Reference](/ref/math)** - Trigonometry, logarithms, and rounding functions (`Round`, `Trunc`, `Ceil`, `Floor`).
:::
Float Type
The Float type represents a double-precision 64-bit floating-point number (IEEE 754).
Literals
Floats are defined using a decimal point. Scientific notation is also supported using the e or E suffix. You can use type inference or explicit typing.
// Type inferencevar f1 :=1.234;var f2 :=1.0;var f3 :=1e-3;// 0.001// Explicit typingvar pi :Float:=3.14159;var avogadro :Float:=6.022e23;
Operations
Standard arithmetic operators apply: +, -, *, and / (floating-point division).
var x :=10/3;// 3.33333333333333
Formatting
To control the precision when converting to a string, use the FloatToStr function or .ToString with parameters.
var f :=1.234567;
PrintLn(f.ToString);// "1.234567"
PrintLn(FloatToStr(f,2));// "1.23"
Result
1.234567
1.23
Special Values
The Float type supports IEEE 754 special values for representing infinity and invalid operations.
INF: Positive Infinity (e.g., 1.0 / 0.0)
NegINF: Negative Infinity (e.g., -1.0 / 0.0)
NaN: Not a Number (e.g., 0.0 / 0.0 or Sqrt(-1))
You can check for these values using the helper functions:
IsNaN(val)
IsInfinite(val)
var x :=1.0/0.0;if IsInfinite(x)then
PrintLn('Infinity reachable');
Result
Infinity reachable
Related Reference
Math Reference - Trigonometry, logarithms, and rounding functions (Round, Trunc, Ceil, Floor).