     Math.floor(Math.randomNumber(min, max))
 Number.isFraction = (x) -> typeof x == "number" and isFinite(x) and Math.floor(x) != x
 Number.parseFloatExt = (s) -> parseFloat(s) * (if s.endsWith("%") then 0.01 else 1)
-Number::nearlyEquals = (x) -> Math.nearlyEquals(@valueOf(), x)
-Number::nearlyGreaterThan = (x) -> Math.nearlyGreaterThan(@valueOf(), x)
-Number::nearlyLessThan = (x) -> Math.nearlyLessThan(@valueOf(), x)
+Number::approxEquals = (x) -> Math.approxEquals(@valueOf(), x)
+Number::approxGreaterThan = (x) -> Math.approxGreaterThan(@valueOf(), x)
+Number::approxLessThan = (x) -> Math.approxLessThan(@valueOf(), x)
 # This class is a combination of 3 things: complex number, 2d point, and 2d vector.
 # It can even be used for all "ordered pair" things such as size (width and height).
 class global.Point

        a = Point.from(a)
        b = Point.from(b)
        a.x == b.x and a.y == b.y
    nearlyEquals: (a, b) ->
        a = Point.from(a)
        b = Point.from(b)
        a.x.nearlyEquals(b.x) and a.y.nearlyEquals(b.y)
    opposite: (p) ->
        p = Point.from(p)
        new Point(-p.x, -p.y)

        "#{@x}#{sign}#{Math.abs(@y)}i"
    clone: -> new Point(@x, @y)
    equals: (p) -> cmath.equals(@, p)
    approxEquals: (p) -> cmath.approxEquals(@, p)
    opposite: -> cmath.opposite(@)
    reciprocal: -> cmath.reciprocal(@)
    conjugate: -> cmath.conjugate(@)
