1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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|
This commit is contained in:
S.H 2020-04-22 09:49:13 +09:00 committed by GitHub
parent ad63ae6619
commit 17083011ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: git 2020-04-22 09:49:42 +09:00
Merged: https://github.com/ruby/ruby/pull/3048

Merged-By: nobu <nobu@ruby-lang.org>
3 changed files with 32 additions and 25 deletions

View file

@ -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