首页 > 代码库 > Ruby Numeric

Ruby Numeric

Numeric|-- Float|-- Integer    |-- Fixnum    |-- Bignum

Numeric的基本结构

 

整数的差异,一般的数字Fixnum就能够处理,即使超过了Fixnum的处理范围也会直接转换为Bignum,不需要程序员处理。


0b开头的数字是二进制的;

0开头的数字是八进制的;

0d开头的数字是十进制的;

0x开头的数字是十六进制的;

之外的基本上都是十进制的。

 

?a,是查看字符a的ASCII码。

?\t,查看\t的ASCII码。

123.45,浮点数

123.45e3,123.45*103

123.45e-3,123.45*10-3

 

数字内的下划线会被忽略掉!!!!

p 123_456_789  #=> 123456789

p 0x1_2_3  #=>0x123

p 1_234.0e3  #=>1234000.0

 

+,-,*,/

%  取余数

**  求幂

 

x.divmod(y)  #返回结果为一个包含两个元素的数组。第一个元素为商,第二个元素为余数。

x.module(y)  #等同于x%y

x.remainder(y)  #返回符号与x相同的余数

 

整数除以0会出现错误;

浮点数除以0返回结果为Infinity

 

"123".to_i

123.to_f

反正我没有发现他们会出现什么异常。

 

round,Float#to_i会直接去掉小数点后面的部分。如果想要四舍五入需要用round。

ceil,floor:天花板, 地板

 

n.times{|i|...}

from.upto(to){|i|...}

from.downto(to){|i|...}

form.step(to, step){|i|...}

Ruby Numeric