type=class
superclass=Object
included=Comparable
extended=
library=_builtin

ͤɽݥ饹Ǥ[[c:Fixnum]]  [[c:Float]] ʤɤοͥ饹 Numeric Υ֥饹Ȥ
Ƥޤ

黻ӤԤ᥽å(+, -, *, /, <=>) Numeric Υ֥饹
Numeric Ƥ᥽åɤϡ֥饹󶡤Ƥ᥽å
(+, -, *, /, %) ѤΤۤȤɤǤ
Ĥޤ Numeric Ƥ᥽åɤϡNumeric Υ֥饹Ȥƿ˿ͥ饹ˡ
黻᥽å(+, -, *, /, %, <=>, coerce)Сͥ饹ΤΤۤΥ᥽åɤ
Ŭڤ뤳Ȥտޤ󶡤Ƥޤ

+@, -@ ñ黻 +, - ɽ᥽åʤɤǤϤεˡѤޤ

ΨΤ Numeric Υ᥽åɤƱ᥽åɤ֥饹ǺƤ礬ޤ

[[m:Numeric#coerce]] ᥽åɤȤȤˤäưۤʤͥ饹֤Ǳ黻ԤȤǤޤ

=== ʹϢΥ᥽åɤºݤƤ륯饹

ۤȤɤοʹϢΥ᥽åɤϥ֥饹ǺƤޤϡ
ΨΤǤäݥ饹Ǽ뤳ȤǤʤä
뤿ǤºݤˤɤΥ᥽åɤɤΥ饹Ƥ뤫ϰʲ
ɽ򻲾ȤƤ


 => ruby 1.8.6 (2007-06-18 patchlevel 5000) [i686-linux]
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                      % |     -          -          o          o          o
                      & |     -          -          o          o          -
                      * |     -          -          o          o          o
                     ** |     -          -          o          o          o
                      + |     -          -          o          o          o
                     +@ |     o          -          -          -          -
                      - |     -          -          o          o          o
                     -@ |     o          -          o          o          o
                      / |     -          -          o          o          o
                      < |     -          -          o          -          o
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                     << |     -          -          o          o          -
                     <= |     -          -          o          -          o
                    <=> |     o          -          o          o          o
                     == |     -          -          o          o          o
                      > |     -          -          o          -          o
                     >= |     -          -          o          -          o
                     >> |     -          -          o          o          -
                     [] |     -          -          o          o          -
                      ^ |     -          -          o          o          -
                    abs |     o          -          o          o          o
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                   ceil |     o          o          -          -          o
                    chr |     -          o          -          -          -
                 coerce |     o          -          -          o          o
                    div |     o          -          o          o          -
                 divmod |     o          -          o          o          o
                 downto |     -          o          -          -          -
                   eql? |     o          -          -          o          o
                   fdiv |     o          -          o          o          -
                finite? |     -          -          -          -          o
                  floor |     o          o          -          -          o
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                   hash |     -          -          -          o          o
                id2name |     -          -          o          -          -
              infinite? |     -          -          -          -          o
               integer? |     o          o          -          -          -
                 modulo |     o          -          o          o          o
                   nan? |     -          -          -          -          o
                   next |     -          o          -          -          -
               nonzero? |     o          -          -          -          -
                    quo |     o          -          o          o          -
              remainder |     o          -          -          o          -
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                  round |     o          o          -          -          o
 singleton_method_added |     o          -          -          -          -
                   size |     -          -          o          o          -
                   step |     o          -          -          -          -
                   succ |     -          o          -          -          -
                  times |     -          o          -          -          -
                   to_f |     -          -          o          o          o
                   to_i |     -          o          -          -          o
                 to_int |     o          o          -          -          o
                   to_s |     -          -          o          o          o
                           Numeric    Integer     Fixnum     Bignum     Float
           ---------------------------------------------------------------------
                 to_sym |     -          -          o          -          -
               truncate |     o          o          -          -          o
                   upto |     -          o          -          -          -
                  zero? |     o          -          o          -          o
                      | |     -          -          o          o          -
                      ~ |     -          -          o          o          -       

=== ݤ᥽åɤư


[[m:Numeric#ceil]], [[m:Numeric#floor]], [[m:Numeric#round]], [[m:Numeric#truncate]]
Τդޤΰ㤤ɽǤμ¿ФƳƥ᥽åɤƤ֤ɽΤ褦ʿ
֤ޤ

              |       ceil      floor      round   truncate
        ----------------------------------------------------
          1.9 |          2          1          2          1
          1.1 |          2          1          1          1
         -1.1 |         -1         -2         -1         -1
         -1.9 |         -1         -2         -2         -1

=== ݤ᥽åɤγĥ

ھ夲ceil, floor ѤưʲΤ褦Ǥޤ

  if n > 0 then
    n.ceil
  else
    n.floor
  end

ޤǤշھ夲ڼΤơͼθԤ᥽åɤϰʲΤ褦
Ǥޤ

  class Numeric
    def roundup(d=0)
      x = 10**d
      if self > 0
        (self * x).ceil.quo(x)
      else
        (self * x).floor.quo(x)
      end
    end

    def rounddown(d=0)
      x = 10**d
      if self < 0
        (self * x).ceil.quo(x)
      else
        (self * x).floor.quo(x)
      end
    end

    def roundoff(d=0)
      x = 10**d
      if self < 0
        (self * x - 0.5).ceil.quo(x)
      else
        (self * x + 0.5).floor.quo(x)
      end
    end
  end
