Joel VanderWerf
4/30/2007 6:00:00 AM
Haoqi Haoqi wrote:
> what's the difference about "LONG2NUM and LONG2FIX" in ruby c api?
LONG2FIX will truncate into a Fixnum (a 31 bit signed integer). LONG2NUM
will convert to Bignum (arbitrary precision integer) if necessary.
> why not "return LONG2FIX after FIX2LONG"??
> thanks.
(-2**30).class # => Fixnum
(2**30).class # => Bignum
(-2**30).abs.class # => Bignum
> ruby source file(numeric.c):
> /*
> * call-seq:
> * fix.abs -> aFixnum
> *
> * Returns the absolute value of <i>fix</i>.
> *
> * -12345.abs #=> 12345
> * 12345.abs #=> 12345
> *
> */
>
> static VALUE
> fix_abs(fix)
> VALUE fix;
> {
> long i = FIX2LONG(fix);
>
> if (i < 0) i = -i;
>
> return LONG2NUM(i);
> }
>
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407