You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Installation
Add this line to your application's Gemfile:
gem 'stringify_float'
And then execute:
$ bundle
Or install it yourself as:
$ gem install stringify_float
Usage
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.
Contributing
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
About
Work around poor floating point support with RubyMotion