     else if abs_float >= Math.pow(10, 15)
       denom = Math.pow(10, 15)
       label = 'Quadrillion'
-    
+
     # Process the number into a presentable format
     number  = float / denom
     precise = NumberHelpers.number_with_precision(number,

      separator:                  _separator
      strip_insignificant_zeros:  unless label then true else _strip_insignificant_zeros
    )
    
    #No label needed for less than thousand
    if label
      return "#{precise} #{label}"
    else 
      return precise
  
  @number_to_human_size = (float, opts={}) ->
    _precision    = opts.precision    ? 3
    _separator    = opts.separator    ? '.'
    _significant  = opts.significant  ? true
    _delimiter    = opts.delimiter    ? ','
    _strip_insignificant_zeros = opts.strip_insignificant_zeros ? false
    
    # Power of 10 to Bytes Converter
    float = float / 1.024 if float > 1000
    float = float / 1.024 if float > 1000000
    float = float / 1.024 if float > 1000000000
    float = float / 1.024 if float > 1000000000000
    
    # Remove the sign of the number for easier comparision
    abs_float = Math.abs(float)
    
    # Less than Thousand does not need text or a insignifiant digits
    if abs_float < Math.pow(10, 3)
      denom = 1

    _precision  = opts.precision ? 2
    _unit       = opts.unit ? '$'
    _separator  = opts.separator ? '.'
    _delimiter  = opts.delimiter ? ','

    number  = float.toString().split('.')
    integer = number[0]
    decimal = number[1]

    # Pad to _precision
    decimal = parseFloat("0.#{decimal}").toFixed(_precision)
    decimal = decimal.toString().split('.')
    decimal = decimal[1] ? ''

    # Remove separator if no decimal
    _separator = '' unless decimal

    # Non-number values return zero precision
    _separator = decimal = '' if isNaN(integer)

    integer = NumberHelpers.number_with_delimiter(integer, {delimiter: _delimiter})

    return "#{_unit}#{integer}#{_separator}#{decimal}"

  @number_with_delimiter = (float, opts={}) ->
    _separator  = opts.separator ? '.'
    _delimiter  = opts.delimiter ? ','

    number  = float.toString().split(".")
    integer = number[0]
    decimal = number[1] ? ''

    # Remove separator if no decimal
    _separator = '' unless decimal

    rgx = /(\d+)(\d{3})/
    integer = integer .replace(rgx, "$1" + _delimiter + "$2") while rgx.test(integer) if _delimiter

    return "#{integer}#{_separator}#{decimal}"

  @number_with_precision = (float, opts={}) ->
    _precision    = opts.precision ? 3
    _delimiter    = opts.delimiter ? ','
    _separator    = opts.separator ? '.'
    _significant  = opts.significant ? false
    _strip_insignificant_zeros = opts.strip_insignificant_zeros ? false

    # Break number into inspectable pieces
    number    = float.toString().split('.')
    integer   = number[0]
    decimal   = number[1] ? ''

    # Significant Digits need rounding to match number of sig digits
    if _significant
      rnd = _precision - integer.length
    else
      rnd = _precision

    # Make sure rounding is not to a negative place
    rnd = 0 if rnd < 1

    # Round
    multiple  = Math.pow(10, rnd)
    if multiple > 1
      rounded   = Math.round(float * multiple) / multiple
    else
      rounded = float

    # Break number into inspectable pieces
    number    = rounded.toString().split('.')
    integer   = number[0]
    decimal   = number[1] ? ''

    # Pad to _precision
    decimal = parseFloat("0.#{decimal}").toFixed(_precision)
    decimal = decimal.toString().split('.')
    decimal = decimal[1] ? ''

    # Reconstitute the number with correct decimal
    number    = "#{integer}.#{decimal}" * 1
    num_array = number.toString().split('')
    num_lngth = num_array.length

    # Count Non-zero Digits
    i = 0; sigs = 0
    while i < num_lngth
      sigs++ unless num_array[i] is '.' or num_array[i] is '0'
      i++

    # Significant Digits
    if _significant and sigs >= _precision and _precision > 0
      significant = number.toPrecision(_precision) * 1
      significant = significant.toString().split('.')
      integer     = significant[0]
      decimal     = significant[1] ? ''

    # Delimiter Integer
    integer = NumberHelpers.number_with_delimiter(integer, {delimiter: _delimiter})

    # Strip Insignificant Digits
    decimal = '' if _strip_insignificant_zeros

    # Remove separator if no decimal
    _separator = '' unless decimal

    return "#{integer}#{_separator}#{decimal}"

  @number_to_human = (float, opts={}) ->
    _precision    = opts.precision    ? 3
    _separator    = opts.separator    ? '.'
    _significant  = opts.significant  ? true
    _delimiter    = opts.delimiter    ? ','
    _strip_insignificant_zeros = opts.strip_insignificant_zeros ? false

    # Remove the sign of the number for easier comparision
    abs_float = Math.abs(float)

    # Less than Thousand does not need text or a insignifiant digits
    if abs_float < Math.pow(10, 3)
      denom = 1
