float.flow
v0.1.2
Published
Typed floating point numbers
Downloads
15
Readme
float.flow
Library provides float
opquae type alias for number
and set of functions
to work with float
type values.
API
Import
import * as Float from "float.flow"
Float.float:number
Library exposes float
, a subtype of a number
.
Float.parseFloat(string):?float
Try to turn given string into a float
, unlike built-in parseFloat
this function never return NaN
or an Infinity
, but rather retuns null
(?
portion of ?float
). It also unlike built-in parseFloat
fails (returns null
) on strings than aren't numbers like "0what?"
.
Float.parseFloat("123") //> 123
Float.parseFloat("3.14") //> 3.14
Float.parseFloat("3.14") //> 3.14
Float.parseFloat("+3.14") //> 3.14
Float.parseFloat("-3.14") //> -3.14
Float.parseFloat("0") //> 0
Float.parseFloat(".0") // > 0
Float.parseFloat("NaN") //> null
Float.parseFloat("-Infinity") //> null
Float.parseFloat("Infinity") //> null
Float.parseFloat("0xFF") //> null
Float.parseFloat("0what?") //> null
Float.toFloat(number):float
Turns any number into a float
. Useful for working with APIs that require float
type argument instead of number
.
Float.toFloat(0) //> 0
Float.toFloat(1 / 2) // 1.5
Float.toFloat(0 / 0) //> NaN
Float.toFloat(1 / 0) // Infinity
Float.isNaN(number):boolean
Returns true
if given number
is NaN
. Just an alias for JS built-in isNaN
.
Float.isNaN(0 / 0) //> true
Float.isNaN(NaN * 2) //> true
Float.isNaN(Infinity) //> false
Float.isNaN(3) //> false
Float.isFinite(number):boolean
Return true
if given number
is finite (is neither NaN
nor (-
)Infinity
). It is just an alias for built-in isFinite
.
Float.isFinite(0 / 0) //> false
Float.isFinite(1 / 0) //> false
Float.isFinite(Infinity) //> false
Float.isFinite(-Infinity) //> false
Float.isFinite(NaN) //> false
Float.isFinite(.0) //> true
Float.isFinite(1 / 8) //> true
Float.isFinite(7) //> true
Install
npm install float.flow