Numeric类
1) 整型和整型相加结果为整形,整形和浮点型相加,结果为浮点型。
================================
p 1+1 #=>2
p 1+1.0 #=>2.0
p 3 * 2.0 #=>6.0
================================
2) divmod。 除了+ - * / %之外,ruby中数值类型还有divmod方法,它也是除的运算符,只是返回值是数组的形式,第一项是商,第二项是余数。
================================
p 16.divmod(5) #=> [3,1]
================================
3) Math模块和round方法。 ruby提供了Math模块,但和一般语言不同的是,round、ceil和floor方法并不是从属于Math模块的,而是直接绑定在数值类上的。Math模块提供的方法有sin、cos、tan、asin、acos、atan、exp、log、log10和sqrt。数值类型的对象转换可以用 to_f、to_i方法。浮点型转整型会直接去掉小数点后的值。字符串调to_i方法相当于js中的parseInt方法。
================================
f = 4
p Math.sqrt(f) #=> 2
include Math
p sqrt(f) #=> 2
p 10.to_f #=> 10.0
p 10.8.to_i #=> 10
p "123".to_i #=> 123
p "123abc".to_i #=> 123
p "abc123".to_i #=> 0 (不是nil哦)
p 1.2.round #=> 1
p 1.2.floor #=> 1
p 1.2.ceil #=> 2
================================
3) 循环。 数值类型可以直接用来循环。
================================
ary = []
3.times{|i| ary << i}
p ary #=>[0,1,2]
ary = []
2.upto(5){|i| ary << i}
p ary #=>[2,3,4,5]
ary = []
5.downto(2){|i| ary << i}
p ary #=>[5,4,3,2]
ary = []
10.step(20,3){|i| ary << i}
p ary #=>[10,13,16,19]
10.step(2,-3){|i| ary << i}
p ary #=>[10,7,4]
================================