Ruby 支持整型和浮点型两种数字类型。
整型可以是任意长度(最大值由你机器的内存大小决定)。在内部由两个类来表示Fixnum和Bignum,Fixnum的表数范围较Bignum小,大小超过Fixnum范围的整数由Bignum表示,如果两个Fixnum计算之后结果超出范围,则自动转换为Bignum;相反,如果两个Bignum操作结果很小,则会转换为Fixnum。Ruby在两者之间自动转换,对用户来说是透明的。
Fixnum有立即值(immediate value),就是说它们当参数传递时,是值传递,而不是引用传递。赋值语句不会在变量和对象之间建立引用关系。Bignum则不是这样的,不是立即值,属于引用传递。
这两个类共有的一些方法:
A.算术操作(加减乘除自不必说):
B.位操作:
C.<=>操作符
根据<=>两边的值比较大小的结果返回-1,0,1三个值之一:
D.[ ] 操作符
比如f是一个整数,则f[n]返回这个f的二进制格式的第n位的值,为0或者1。
E.size:返回这个整数占用的字节数
F.to_f:返回这个整数的浮点值,其实就是加一个”.0”。
to_s:返回这个整数的字符串。
同样,你也可以在数字前面使用进制标识符,比如0表示八进制,0x表示十六进制,0b表示二进制等。而且,如果一个整型数字中有一个下划线,这个下划线将被忽略。(但是下划线不能在开头或者结尾)
类 Iteger
类Integer是Fixnum和Bignum的父类,有一些特殊的方法:
chr(integer):返回这个数字代表的ascii值。
downto(integer):接收一个block,进行从大到小的循环执行block。
anInt.next:返回anInt的下一个数(即anInt+1)。
anInt.Step(endNum,step):从anInt循环到endNum,步长为step,而不是1。
int.times {| i | block } 循环int次,每次执行block中的语句。
upto:类似downto。
3.1.2 浮点型Ruby中浮点数只有Float类。除了算术加减乘除,还有一些特殊方法。以下以anFloat为消息接收者。
ceil : 返回比anFloat大的最小的整数。
floor :返回比anFloat小的最大整数。
finite? :如果anFloat是一个符合IEEE格式的浮点数,返回true。(这个方法名以问号结尾)。
infinite?:根据anFloat是否是负无穷,有限浮点数,正无穷,返回-1,nil,1。
nan? :如果anFloat不是一个符合IEEE标准的数,则返回true。
round :对anFloat四舍五入到一个整数。
to_i :返回anFloat截掉小数点后面数字的整数。
注,本文为不更新版本。
版权所有 (C) 〈2004 〉〈liubin AT huangpuzhuang DOT com〉
本文档为自由文档,根据RDL(Ruby-cn
Document
License)v1.0许可证发布,你可以在网络上非赢利性传播(转载)这篇文档,但请保留原文档所有信息(包括本版权声明);其它使用方式请仔细阅读
RDL许可证文档,该许可证的最新版本可在http://www.ruby-cn.org/RDL.txt获得。
我来说两句
内容:
验证:
发表评论