免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1995 | 回复: 0
打印 上一主题 下一主题

A.6 数值类型 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-16 12:59 |只看该作者 |倒序浏览
A.6 数值类型

Ruby中有3种数值类型:Fixnum和Bignum是整数类型,Float类型作为浮点数可以表示范围非常大的小数。
通常我们认为的像5这样数在Ruby里面也是对象,比如:
  1. class Test
  2. 5.times { |i| print i }
  3. puts \"\\n\"
  4. 1.upto(5) { |i| print i }
  5. puts \"\\n\"
  6. 100.downto(95) { |i| print i, \" \" }
  7. puts \"\\n\"
  8. 10.step(50, 5) { |i| print i, \" \" }
  9. end
复制代码
这说明在Ruby中我们看到的这些平常的数都是对象。通常0开头的数是8进制数,0x开头的数是16进制数,0b开头的数是2进制数。
单个ASCII码字符前加“?”号会返回这个字符的ASCII码值。可以用?\\C-x或?\\M-x返回对应Ctrl和Alt键的对应组合键值,这里x是被组合进去的字符。比如:
  1. class Test
  2. puts ?1
  3. puts ?a
  4. puts ?\\\\
  5. puts ?\\r
  6. puts ?\\C-z # Ctrl+z
  7. puts ?z&0x9f # Ctrl+z
  8. puts ?\\M-z # Alt+z
  9. puts ?z|0x80 # Alt+z
  10. puts ?\\M-\\C-z # Ctrl+Alt+z
  11. puts ?z&0x9f|0x80 # Ctrl+Alt+z
  12. end
复制代码
浮点数使用科学记数法表示时,要注意:e的前面要么忽略小数点,要么在小数殿后面加0。如: 3e3或者3.0e3,而3.e3是错误。
下面的这个程序在有些书籍中被作为经典传抄:
  1. def pt(classname)
  2. c = classname
  3. begin
  4. print c
  5. c = c.superclass
  6. print \" < \" if c
  7. end while c
  8. puts
  9. end

  10. pt(Fixnum)
  11. pt(Bignum)
  12. pt(Float)
复制代码
结果中的 “<”代表类的继承关系。
当Fixnum数很大时会自动转型为Bignum型数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP