are we just checking if the param that is passed only contains digits and/or a decimal point? if so, I think we should just raise an exception of some kind and move on.  My guess is we don't want to allow an amount string that can't be turned into a float or an integer.

after that, you can simplify the next 4 lines:
``` ruby
@amount = amount
@precision = amount.split('.').last.length
@divisor = 10**@precision
```