diff options
author | S.H <gamelinks007@gmail.com> | 2020-04-22 09:49:13 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-22 09:49:13 +0900 |
commit | 17083011eed7d56981f2b227574527e4bf23eb65 (patch) | |
tree | 98c998d925a7e9c87c473eafe5e98dcf9600f69c /kernel.rb | |
parent | ad63ae6619d26488725e05d74f2bfc3ab185b0c3 (diff) |
support builtin for Kernel#Float
# Iteration per second (i/s)
| |compare-ruby|built-ruby|
|:------------|-----------:|---------:|
|float | 30.395M| 38.314M|
| | -| 1.26x|
|float_true | 3.833M| 27.322M|
| | -| 7.13x|
|float_false | 4.182M| 24.938M|
| | -| 5.96x|
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3048
Merged-By: nobu <nobu@ruby-lang.org>
Diffstat (limited to 'kernel.rb')
-rw-r--r-- | kernel.rb | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -26,4 +26,28 @@ module Kernel def clone(freeze: nil) __builtin_rb_obj_clone2(freeze) end + + module_function + + # + # call-seq: + # Float(arg, exception: true) -> float or nil + # + # Returns <i>arg</i> converted to a float. Numeric types are + # converted directly, and with exception to String and + # <code>nil</code> the rest are converted using + # <i>arg</i><code>.to_f</code>. Converting a String with invalid + # characters will result in a ArgumentError. Converting + # <code>nil</code> generates a TypeError. Exceptions can be + # suppressed by passing <code>exception: false</code>. + # + # Float(1) #=> 1.0 + # Float("123.456") #=> 123.456 + # Float("123.0_badstring") #=> ArgumentError: invalid value for Float(): "123.0_badstring" + # Float(nil) #=> TypeError: can't convert nil into Float + # Float("123.0_badstring", exception: false) #=> nil + # + def Float(arg, exception: true) + __builtin_rb_f_float(arg, exception) + end end |