зеркало из https://github.com/github/ruby.git
* bignum.c (rb_big_to_f, Bignum#to_f): removed them because they are
unified with int_to_f and Integer#to_f. * numeric.c (int_to_f): treat Bignum values directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
bb00a5c11f
Коммит
0d076fe4b3
|
@ -1,3 +1,10 @@
|
||||||
|
Fri Mar 19 00:00:00 2016 Kenta Murata <mrkn@mrkn.jp>
|
||||||
|
|
||||||
|
* bignum.c (rb_big_to_f, Bignum#to_f): removed them because they are
|
||||||
|
unified with int_to_f and Integer#to_f.
|
||||||
|
|
||||||
|
* numeric.c (int_to_f): treat Bignum values directly.
|
||||||
|
|
||||||
Fri Mar 18 23:41:00 2016 Kenta Murata <mrkn@mrkn.jp>
|
Fri Mar 18 23:41:00 2016 Kenta Murata <mrkn@mrkn.jp>
|
||||||
|
|
||||||
* numeric.c (int_to_f, fix_to_f): rename fix_to_f to int_to_f, and add
|
* numeric.c (int_to_f, fix_to_f): rename fix_to_f to int_to_f, and add
|
||||||
|
|
16
bignum.c
16
bignum.c
|
@ -5191,21 +5191,6 @@ rb_big2dbl(VALUE x)
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* call-seq:
|
|
||||||
* big.to_f -> float
|
|
||||||
*
|
|
||||||
* Converts <i>big</i> to a <code>Float</code>. If <i>big</i> doesn't
|
|
||||||
* fit in a <code>Float</code>, the result is infinity.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
static VALUE
|
|
||||||
rb_big_to_f(VALUE x)
|
|
||||||
{
|
|
||||||
return DBL2NUM(rb_big2dbl(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_integer_float_cmp(VALUE x, VALUE y)
|
rb_integer_float_cmp(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
|
@ -7033,7 +7018,6 @@ Init_Bignum(void)
|
||||||
rb_define_method(rb_cBignum, "<", big_lt, 1);
|
rb_define_method(rb_cBignum, "<", big_lt, 1);
|
||||||
rb_define_method(rb_cBignum, "<=", big_le, 1);
|
rb_define_method(rb_cBignum, "<=", big_le, 1);
|
||||||
rb_define_method(rb_cBignum, "===", rb_big_eq, 1);
|
rb_define_method(rb_cBignum, "===", rb_big_eq, 1);
|
||||||
rb_define_method(rb_cBignum, "to_f", rb_big_to_f, 0);
|
|
||||||
rb_define_method(rb_cBignum, "abs", rb_big_abs, 0);
|
rb_define_method(rb_cBignum, "abs", rb_big_abs, 0);
|
||||||
rb_define_method(rb_cBignum, "magnitude", rb_big_abs, 0);
|
rb_define_method(rb_cBignum, "magnitude", rb_big_abs, 0);
|
||||||
rb_define_method(rb_cBignum, "size", rb_big_size, 0);
|
rb_define_method(rb_cBignum, "size", rb_big_size, 0);
|
||||||
|
|
|
@ -3767,7 +3767,8 @@ fix_aref(VALUE fix, VALUE idx)
|
||||||
* call-seq:
|
* call-seq:
|
||||||
* int.to_f -> float
|
* int.to_f -> float
|
||||||
*
|
*
|
||||||
* Converts +int+ to a Float.
|
* Converts +int+ to a +Float+. If +int+ doesn't fit in a +Float+,
|
||||||
|
* the result is infinity.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -3779,6 +3780,9 @@ int_to_f(VALUE num)
|
||||||
if (FIXNUM_P(num)) {
|
if (FIXNUM_P(num)) {
|
||||||
val = (double)FIX2LONG(num);
|
val = (double)FIX2LONG(num);
|
||||||
}
|
}
|
||||||
|
else if (RB_TYPE_P(num, T_BIGNUM)) {
|
||||||
|
val = rb_big2dbl(num);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
rb_raise(rb_eTypeError, "Unknown subclass for to_f: %s", rb_obj_classname(num));
|
rb_raise(rb_eTypeError, "Unknown subclass for to_f: %s", rb_obj_classname(num));
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче