Numeric类

 
Numeric ---------> Integer ---------> Fixnum
                                            ---------> Bignum
              --------->  Float
              ---------> Rational
              ---------> Complex        
更新: 2017/06/15   round默认的情况
更新: 2017/10/05   纠正ceil和floor的错误(搞反了)
更新: 2018/8/28 补充to_s, to_i细节, 纠正round的错误描述
         
 Fixnum  普通整数
 Bignum  大整数
   
   
 Rational (有理数)  有理数,以分数形式产生
 Rational(1, 2)  
 #1/2
   .to_f()  
 转换为Float
   .numerator()   分子
   .denominator()   分母
   
 Complex (复数)   复数,以实部和虚部形式生成
Complex(1, 12)  #1 + 12i
   .real()  
 实部
   .imaginary() 虚部
   
 字符  
 123  10进整数  
 123_123_123 
 0123   8进整数
 0o123   8进整数
 0d123  10进整数
 0x123  16进整数
 0b1111011   2进整数
 123.45   浮动小数点数
 1.23e4  浮动小数点数的指数表达
 1.23e-4  浮动小数点数的指数表达
 123r  有理数  123/1
 123.45r  有理数 123.45/1 = 2469/20
 123i  虚数 123i
 123.45i  虚数 123.45i
   
 运算  + - * / % **(幂运算)
 位运算: 只可用于Integer
 ~, &, |, ^(xor)
 >>, <<
 商  11.div(2) = 5
 商 (有理数形式)  11.que(2) = 11/2
 余数 (恒正)  -1.modulo(2) = 1
 余数 (同符号)  -1.remainder(2) = -1
 商与余数  -1.divmod(2) = [-1, 1]
 Math  使用: Math.func-name
 sin(x)
 cos(x)
 tan(x)
 sqrt(x) 平方根
 cbrt(x) 立方根
   
 类型转换  to_s(base=10)  转文字 默认转化为10进制
 to_i(base=10)  转整数 默认转化为10进制
 to_f()  转浮动小数点数
 round(ndigits=0)  四舍五入n位小数 默认取整
     
     
    n可以为负数, 为取整后从小位开始把位上的数变0
     
     
    123.123.round(-1) = 120
 ceil()    
 最小更大整数
     
     
    1.6.ceil() = 2
 floor()  
 最大更小整数
     
     
    1.6.floor() = 1
 随机数   r = Random.new()
 可以手动添加参数
     
     
     
     
     
默认随机数参数
 r.rand()    
     
     
生成随机数
安全随机数
 require "securerandom"
 SecureRandom.random_bytes(n)
     
    生成n位的随机字符串
 SecureRandom.base64(n)
     
    生成n位的随机字符串(0~63的值)
 循环  n.times() do |temp|  
 进行n次(0...n-1)
    ...
 end
 从n到to  n.upto(to) do |temp|  
 n..to
    ...
 end
 从to到n,递减  n.downto(from) do |temp|
    ...
 end
 从n到to
 n..to, r = n+t*step
n.step(to, step) do |temp|
  
    ...
 end 
 模块  include Comparable
 自定义 <=>
 a > b: 1
 a == b: 0
 a < b: -1
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

Ruby  Numeric类的更多相关文章

  1. 雷林鹏分享:Ruby Dir 类和方法

    Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...

  2. 雷林鹏分享:Ruby File 类和方法

    Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...

  3. Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类

    Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s=& ...

  4. objective-c中类似ruby枚举类的实例方法

    虽然obj-c的语法格式略显繁琐,但它和ruby都从某些方面继承了smalltalk的某些动态的东西.这些东西是 C和C++之类的静态语言所不曾有的. 比如ruby中可以将一个类或对象的所有方法枚举出 ...

  5. Ruby Time类和Date类

    Time类 更新: 2017/06/23 更新了Data/Time在model模式下的便利方法 更新: 2018/10/12 修改了%Y相关描述防止误解  年月日时分秒,时区    生成  获取当前时 ...

  6. Ruby Numeric

    Numeric |-- Float |-- Integer |-- Fixnum |-- Bignum Numeric的基本结构 整数的差异,一般的数字Fixnum就能够处理,即使超过了Fixnum的 ...

  7. RUBY的类封装,继承,多态简单演示

    class Person def initialize(name,age=18) @name=name @age=age @motherland="China" end def t ...

  8. ruby File类

    类方法 路径相关: File.basename(filename <, suffix>) -> string返回给定文件名 filename 的最后一部分.如果有 suffix 参数 ...

  9. ruby Time类与Date类

    Time类用于表示时间.时间除了表示年月日时分秒的信息外,还包含了表示地域时差的时区(time zone)信息.例如我们可以计算中国当前时间是国际协调时间的几点 Date类只用于表示年月日.因此,相对 ...

随机推荐

  1. 工具--IIS Express

    iisexpress-proxy https://github.com/icflorescu/iisexpress-proxy 适用于联调,比如app调用接口,开启端口后,app调用接口后会直接进入端 ...

  2. 寒武纪camp Day5

    补题进度:6/10 A(状压dp) 题意: 有n个数字1,2,...,n,有m个限制(a,b),表示至少要有一个数字a排在数字b的前面 你需要构造出一个含有数字1~n的序列,数字可以重复多次,要求该序 ...

  3. Shiro note

    我们需要实现Realms的Authentication 和 Authorization.其中 Authentication 是用来验证用户身份,Authorization 是授权访问控制,用于对用户进 ...

  4. php monolog 的写日志到unix domain socket 测试终于成功

    在另外一个客户端执行 php s.php后, 通过nc -lU /tmp/tg.sck 建立的unix domain socket 有接收到消息. <?php require 'vendor/a ...

  5. sudo 用户添加

    sudo 用户添加 /etc/sudoers 在 ## Allow root to run any commands anywhere root    ALL=(ALL)   ALL 下面加上 xxx ...

  6. cocos2dx 制作单机麻将(五)

    cocos2dx 制作单机麻将(五) 麻将逻辑6 最基础的4人麻将逻辑(轮流循环出牌, 之前学的都能用上  跑起来了!!!) 最基础的麻将逻辑 依据自己须要 设置麻将人数GAME_PLAYER 基本流 ...

  7. 【Java 虚拟机探索之路系列】:JIT编译器

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 为 ...

  8. 从PRISM开始学WPF(一)WPF?

    从PRISM开始学WPF(一)WPF?   我最近打算学习WPF ,在寻找MVVM框架的时候发现了PRISM,在此之前还从一些博客上了解了其他的MVVM框架,比如浅谈WPF中的MVVM框架--MVVM ...

  9. Struts2框架起源

    曾经也用过S2SH框架做过几个项目,都不是工作中的,学习WEB开发的时候接触的第一套框架也是S2SH,可是工作之后一直没实用到S2SH 框架进行开发. 感觉曾经用这个框架的时候根本没有深入去了解这个框 ...

  10. 3 微信开发本地代理环境的搭建--实现将内网ip映射到外网

    微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本 ...