【Ruby on Rails全栈课程】2.2 ruby数据类型--数字(Numeric)

简介: 1、数字(Numeric)(1)数字形式包括整型和浮点型。整数型又分为Fixnum类、Bignum类。(2)Fixnum是-230到230-1或-262到262-1之间的整数。在这范围之外的整数是Bignum类。Bignum的数字可以是任意长度,长度限制于电脑的物理内存。

1、数字(Numeric)


(1)数字形式包括整型和浮点型。整数型又分为Fixnum类、Bignum类。



(2)Fixnum是-230到230-1或-262到262-1之间的整数。在这范围之外的整数是Bignum类。Bignum的数字可以是任意长度,长度限制于电脑的物理内存。


#2**62代表2的62次方
irb(main):001:0> a = 2**62
=> 4611686018427387904
irb(main):002:0> b = 2**62 - 1
=> 4611686018427387903
#a.class可以查看a对象所属的类
irb(main):003:0> a.class
#a不在-2^62到2^62-1的范围内,返回信息为Bignum类
=> Bignum
irb(main):004:0> b.class
#b在-2^62到2^62-1的范围内,返回信息为Fixnum类
=> Fixnum


(3)直接定义一个小数,系统会自动识别为浮点型(Float)


irb(main):001:0> a = 5.0
=> 5.0
irb(main):002:0> a.class
=> Float
irb(main):003:0> b = 5
=> 5
irb(main):004:0> b.class
=> Fixnum


在ruby中,在定义变量是不必提前申明类型的,定义好了之后,系统会自动判断数据类型。


2、运算符


(1)+、-、*我就不说了,和咱们从小学的数学一样,没有特别的地方


(2)/除法:有一个地方需要注意:两个整数相除,得到的结果是一个整数。如果结果应该是小数,系统会向下取整为整数。


#7/2实际为3.5,整数相除会向下取整为3
irb(main):001:0> a = 7/2
=> 3
#除数和被除数都为浮点型,或者其中一个为浮点型,得到的结果都是浮点型(Float)
irb(main):002:0> b = 7.0/2
=> 3.5


(3)%求模:就是取余数。


irb(main):001:0> a = 7 % 3
=> 1


(4)** 指数:3**2 指的是3的2次方



(5)== 判断两个数是否相等,相等为true,否则为false。这个要注意和equal方法的区别。


irb(main):001:0> 2 == 2
=> true
#用==判断,整型自动转换成浮点型,再做对比。
irb(main):002:0> 2 == 2.0
=> true
#用equal判断,整型不会转换成浮点型。
irb(main):003:0> 2.equal?(2.0)
=> false


(6)<=> 判断两个数是大小关系:a>b返回1、a<b返回-1、a=b返回0。


irb(main):001:0> 4 <=> 2
=> 1
irb(main):002:0> 4 <=> 5
=> -1
irb(main):003:0> 4 <=> 4
=> 0


3、类型转换


(1)整型转浮点型:to_f


irb(main):005:0> 1.to_f
=> 1.0


(2)浮点型转整型:to_i。小数执行to_i时,只保留整数部分,不会四舍五入


(2)浮点型转整型:to_i。小数执行to_i时,只保留整数部分,不会四舍五入


4、常用函数


(1)num.abs 取num的绝对值


irb(main):007:0> -1.abs
=> 1


(2)num.ceil 返回大于num的最小整数,即向上取整


(3)num.floor 返回小于num的最大整数,即向下取整


irb(main):008:0> 3.2.ceil
=> 4
irb(main):009:0> 3.2.floor
=> 3
(7)num1.step(num2,n) {|i| print i } 遍历num1到num2之间的数字,n是步长值,意思是每隔n个数取一次值,可以不填。


step方法需要结合块来使用,块的概念我们后面会讲到。目前这个方法先了解一下。


irb(main):001:0> 2.step(8)
#2.step(8)没有直接得到2到8的遍历结果,而是得到了一个Enumerator迭代器对象。
#迭代器可以理解成可以被遍历的一个接口,里面已经实现了next方法,迭代器通常和“块”结合使用,从而遍历出2到8的数字。
=> #<Enumerator: 2:step(8)>


#大括号以及里面包含的内容{|i| puts i}就是“块”,块可以理解成代码块,Ruby中的概念,后面我们会详细讲。
irb(main):001:0> 2.step(8) {|i| puts "输出此次遍历的值:#{i}"}
输出此次遍历的值:2
输出此次遍历的值:3
输出此次遍历的值:4
输出此次遍历的值:5
输出此次遍历的值:6
输出此次遍历的值:7
输出此次遍历的值:8
=> 2
#3是步长值,2到8之间每隔3取一个数
irb(main):002:0> 2.step(8,3) {|i| puts "输出此次遍历的值:#{i}"}
输出此次遍历的值:2
输出此次遍历的值:5
输出此次遍历的值:8
=> 2
目录
相关文章
|
2月前
|
前端开发 测试技术 数据库
使用Ruby on Rails进行快速Web开发的技术探索
【8月更文挑战第12天】Ruby on Rails以其高效、灵活和易于维护的特点,成为了快速Web开发领域的佼佼者。通过遵循Rails的约定和最佳实践,开发者可以更加专注于业务逻辑的实现,快速构建出高质量的Web应用。当然,正如任何技术框架一样,Rails也有其适用场景和局限性,开发者需要根据项目需求和个人偏好做出合适的选择。
|
2月前
|
前端开发 测试技术 API
揭秘Ruby on Rails的神秘力量:如何让你的Web应用飞起来?
【8月更文挑战第31天】Ruby on Rails(简称RoR)是一个基于Ruby语言的开源Web应用框架,自2005年发布以来,因简洁的语法、强大的功能和高效的开发效率而广受好评。RoR采用MVC架构,提高代码可读性和可维护性,拥有庞大的社区和丰富的库支持。本文通过示例代码展示其强大之处,并介绍RoR的核心概念与最佳实践,帮助开发者更高效地构建Web应用。
37 0
|
2月前
|
前端开发 API C++
在Ruby世界中寻找你的Web框架灵魂伴侣:Rails vs Sinatra
【8月更文挑战第31天】在Ruby的世界里,选择Web框架如同挑选衣物,需根据场合和需求。Rails与Sinatra是两大热门框架,前者以其“约定优于配置”理念和全面的功能成为企业级应用的首选;后者则以轻量级和灵活性著称,适用于快速原型开发和小规模应用。通过对比两者特性,如Rails的MVC架构与Sinatra的简洁API,我们可以看到它们各有所长。选择合适的框架,如同找到旅途中的最佳伙伴,让开发之路更加顺畅愉悦。这场探索之旅教会我们,没有绝对的好坏,只有最适合的选择。
27 0
|
2月前
|
安全 前端开发 数据安全/隐私保护
如何在Ruby on Rails中打造坚不可摧的OAuth认证机制
【8月更文挑战第31天】在构建现代Web应用时,认证与授权至关重要。本文介绍如何在Ruby on Rails中实现OAuth认证,通过使用`omniauth`和`devise` gems简化流程。首先安装并配置相关gem,接着在`User`模型中处理OAuth回调,最后设置路由及控制器完成登录流程。借助OAuth,用户可使用第三方服务安全地进行身份验证,提升应用安全性与用户体验。随着OAuth标准的演进,这一机制将在Rails项目中得到更广泛应用。
37 0
|
3月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
4月前
|
前端开发 测试技术 数据库
Ruby on Rails:快速开发Web应用的秘密
【6月更文挑战第9天】Ruby on Rails,一款基于Ruby的Web开发框架,以其高效、简洁和强大备受青睐。通过“约定优于配置”减少配置工作,内置丰富功能库加速开发,如路由、数据库访问。活跃的社区和海量资源提供支持,MVC架构与RESTful设计确保代码清晰可扩展。高效的数据库迁移和测试工具保证质量。Rails是快速构建Web应用的理想选择,未来将持续影响Web开发领域。
|
5月前
|
开发框架 安全 前端开发
使用Ruby on Rails进行快速Web开发
【5月更文挑战第27天】Ruby on Rails是一款基于Ruby的高效Web开发框架,以其快速开发、简洁优雅和强大的社区支持著称。遵循“约定优于配置”,Rails简化了开发流程,通过MVC架构保持代码清晰。安装Ruby和Rails后,可使用命令行工具创建项目、定义模型、控制器和视图,配置路由,并运行测试。借助Gem扩展功能,优化性能和确保安全性,Rails是快速构建高质量Web应用的理想选择。
|
5月前
|
Ruby
|
5月前
|
JSON 数据格式 Ruby
|
5月前
|
调度 Ruby