Js.Float
Bindings to functions in JavaScript's Number
that deal with floats
Provides functions for inspecting and manipulating float
s
val _NaN : t
The special value "Not a Number"
val isNaN : t -> bool
Tests if the given value is _NaN
Note that both _NaN = _NaN
and _NaN == _NaN
will return false
. isNaN
is therefore necessary to test for _NaN
.
Returns true
if the given value is _NaN
, false
otherwise
val isFinite : t -> bool
Tests if the given value is finite
Returns true
if the given value is a finite number, false
otherwise
(* returns [false] *)
let _ = Js.Float.isFinite infinity
(* returns [false] *)
let _ = Js.Float.isFinite neg_infinity
(* returns [false] *)
let _ = Js.Float.isFinite _NaN
(* returns [true] *)
let _ = Js.Float.isFinite 1234
val toExponential : ?digits:int -> t -> string
Formats a float
using exponential (scientific) notation
digits specifies how many digits should appear after the decimal point. The value must be in the range [0, 20] (inclusive).
Returns a string
representing the given value in exponential notation
The output will be rounded or padded with zeroes if necessary.
val toFixed : ?digits:int -> t -> string
Formats a float
using fixed point notation
digits specifies how many digits should appear after the decimal point. The value must be in the range [0, 20] (inclusive). Defaults to 0
.
Returns a string
representing the given value in fixed-point notation (usually)
The output will be rounded or padded with zeroes if necessary.
val toPrecision : ?digits:int -> t -> string
Formats a float
using some fairly arbitrary rules
digits specifies how many digits should appear in total. The value must between 0 and some arbitrary number that's hopefully at least larger than 20 (for Node it's 21. Why? Who knows).
Returns a string
representing the given value in fixed-point or scientific notation
The output will be rounded or padded with zeroes if necessary.
toPrecision
differs from toFixed
in that the former will count all digits against the precision, while the latter will count only the digits after the decimal point. toPrecision
will also use scientific notation if the specified precision is less than the number for digits before the decimal point.
val toString : ?radix:int -> t -> string
Formats a float
as a string
radix specifies the radix base to use for the formatted number. The value must be in the range [2, 36] (inclusive).
Returns a string
representing the given value in fixed-point (usually)
val fromString : string -> t
Parses the given string
into a float
using JavaScript semantics
Returns the number as a float
if successfully parsed, _NaN
otherwise.
Js.Float.fromString "123" = 123.
Js.Float.fromString "12.3" = 12.3
Js.Float.fromString "" = 0.
Js.Float.fromString "0x11" = 17.
Js.Float.fromString "0b11" = 3.
Js.Float.fromString "0o11" = 9.
Js.Float.fromString "foo" = _NaN
Js.Float.fromString "100a" = _NaN