From: Joel VanderWerf Date: 2007-04-30T14:59:32+09:00 Subject: Re: LONG2NUM vs LONG2FIX 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 fix. > * > * -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