Method: JS::Object#to_f
- Defined in:
- ext/js/js-core.c
#to_f ⇒ Float
Converts self to a Float:
JS.eval("return 1").to_f # => 1.0
JS.eval("return 1.2").to_f # => 1.2
JS.eval("return -1.2").to_f # => -1.2
JS.eval("return '3.14'").to_f # => 3.14
JS.eval("return ''").to_f # => 0.0
JS.eval("return 'x'").to_f # => 0.0
JS.eval("return NaN").to_f # => Float::NAN
JS.eval("return Infinity").to_f # => Float::INFINITY
JS.eval("return -Infinity").to_f # => -Float::INFINITY
418 419 420 421 422 423 424 425 426 427 428 429 430 |
# File 'ext/js/js-core.c', line 418 static VALUE _rb_js_obj_to_f(VALUE obj) { struct jsvalue *p = check_jsvalue(obj); rb_js_abi_host_raw_integer_t ret; VALUE result; rb_js_abi_host_js_value_to_integer(p->abi, &ret); if (ret.tag == RB_JS_ABI_HOST_RAW_INTEGER_AS_FLOAT) { result = rb_float_new(ret.val.as_float); } else { result = DBL2NUM(rb_cstr_to_dbl((const char *)ret.val.bignum.ptr, FALSE)); } rb_js_abi_host_raw_integer_free(&ret); return result; } |