Ruby mathematic gem
I can highly recommend the Ruby/GSL gem.
You may need to refer to the GSL manual to work out the name of the function you need to call though, if it's not documented in the Ruby/GSL documentation.
Scientific/Math Symbols Keyboard for Ruby on Rails
This seems like what you are looking for: http://math.typeit.org/
View the page source and it will hopefully give you some ideas of how to implement or what else to start researching.
Issue Performing Mathematical Operations on Money Objects - Unknown Method exchange_to for 0:fixnum [Rails 4] [Money Gem]
I haven't worked with this gem, but it doesn't look like you've followed the read-me for the money-rails gem
https://github.com/RubyMoney/money-rails
Assuming you have a field in the model :default_price_cents
you can do...
monetize :default_price_cents, with_model_currency: :currency
... and this will automatically give you a monetzed field called ':default_price`. You don't need to define it and you don't need to "monetize" it, it's already a money attribute.
Similarly, you should be creating methods called daily_saving_potential_cents
and total_saving_potential_cents
and total_money_spent_cents
etc etc etc. You will automatically have a method daily_saving_potential
, and total_saving_potential
and so on.
In your method calculations use the raw (.._cents) attributes.
Ruby: Math functions for Time Values
Use ActiveSupport, which has a ton of built-in date extensions.
require 'active_support/core_ext'
t1 = "#{Date.today} 00:00:59".to_time
t2 = "#{Date.today} 00:01:43".to_time
t3 = "#{Date.today} 00:20:15".to_time
t1.since(t2.seconds_since_midnight+t3.seconds_since_midnight)
or, if you don't care about the date, only time:
t1.since(t2.seconds_since_midnight+t3.seconds_since_midnight).strftime("%H:%M:%S")
For a full list, check out http://guides.rubyonrails.org/active_support_core_extensions.html#extensions-to-date
Ruby | designing mathematics?
As it seems you are trying to implement the Sieve of Atkin then you are also probably aware that 4x^2+y^2=n is only the first of three equations. I don't want to spoil your fun and thus the below only implements that one. If you get stuck, just comment this answer and I will get back to you.
max = 100
primes = Array.new(max + 1) { false }
sqrt = Math.sqrt(max)
1.upto(sqrt) do |x|
1.upto(sqrt) do |y|
n = 4 * x**2 + y**2
primes[n] ^= true if n <= max && (n % 12 == 1 || n % 12 == 5)
end
end
Ruby - mathematics operations
(3+2+1)/100
is 0
because the division is integer. Try
(3+2+1)/100.0
You see, if both arguments of /
are integer, the result of the division is an integer (the whole part). If at least one of the arguments is floating-point, then the result is also floating-point.
Related Topics
Ruby on Rails - Paperclip and Dynamic Parameters
Solving the Travelling Salesman Problem in Ruby (50+ Locations)
Sending a Delete Request from Sinatra
How to Detect the End of a Method Chain in Ruby
Ending a Rails 2 Url with an Ip Address Causes Routing Error
Raise Exception When Accessing Attributes That Doesn't Exist in Openstruct
Making a Soap Request by Using Xml in Rails
Using Will_Paginate Without :Total_Entries to Improve a Lengthy Query
How Rails Delegate Method Works
Enumerator as an Infinite Generator in Ruby
Adding a Helper Method with a Gem
Datetime with Mongodb/Mongoid and Rails 3 Not Populating
What Are Tainted Objects, and When Should We Untaint Them
How to Remove a Non-Breaking Space in Ruby
Rails Pass Params/Arguments to Activerecord Callback Function