module SIValue

Constants

PREFIX_MAGNITUDES

Public Class Methods

from(str) click to toggle source

Returns BigDecimal

# File lib/sivalue.rb, line 9
def self.from(str)
  _, num, prefix = str.match(/^([-+]?[0-9]*\.?[0-9]*)(#{PREFIX_MAGNITUDES.keys.join('|')})?/oi).to_a
  if num
    if prefix
      BigDecimal.new(num) * 10**PREFIX_MAGNITUDES[prefix]
    else
      BigDecimal.new(num)
    end
  else
    0.0
  end
end