很多刚开始接触脚本语言的人估计都会对整数除法有点不习惯,比如
9/2 =》 4
反正我是觉得不太方便,特别是自己有时候用ruby来计算一点东西,经常就忘记在定义的整数后面加上一个to_f方法。
ruby中其实有一个类库可以用来解决这个问题,mathn. 如果你载入了这个库之后,
9/2 就会输出 9/2 而不是浮点数。一般来说,用这个解决方法就够用了,但是昨天我写的一个程序用来计算一个稍微复杂一点的数的时候,莫名其妙的给我一个错误,我估计原因应该是因为我的算式里面有指数这样的无理数,mathn还硬要算出一个有理数来,结果溢出了。
幸好ruby语言比较灵活,我给ruby的类库重载了一下就可以实现我要的功能。
class Float
def to_s
format("%.3f", self)
end
end
class Fixnum
def / (num)
self.to_f/num.to_f
end
end
一个是用来给浮点输出格式化一下,后面的就是让整数除法自动的转成浮点数以后再除。简单把,呵呵!
irb(main):008:0> 7/3
=> 2.333
irb(main):009:0> 8/2
=> 4.000
如果在程序里面想用原来的整数除法,可以用div函数。