RubyMotion on 32-bit iOS devices suffers from poor floating point support:
(main)> 1.2 => 1.19999980926514
This causes no end of problem with Core Data, and other uses where we really want more precision than RubyMotion currently provides. Plus, generally these values are converted to and from strings for presentation or editing. These are convience functions to ease this use case as well.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install stringify_float
class Model include StringifyFloat attr_accessor :cost stringify_float :cost attr_accessor :quantity stringify_float :quantity, precision: 1 end >>> x = Model.new >>> x.stringifiedCost = "123.45" >>> x.stringifiedCost "123.45" >>> x.stringifiedQuantity = "123.45" >>> x.stringifiedQuantity "123.4"
"precision" specifies how many decimal places should be stored. This should be greater than 1, and as many positions as you wish. Returned strings are always 0-padded, so "123" becomes "123.00" (using the default precision).
The underlying data type limits how large a given integer can be. If using Core Data, an integer32 can store values up to 21,474,836.48 using the default precision of 2.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request