Tag: 有理数

如何将Rational数字格式化为十进制?

给定具有有限十进制表示的任意大(或小) Rational ,例如: r = Rational(1, 2**15) #=> (1/32768) 如何将其完整十进制值作为字符串? 上述数字的预期输出为: “0.000030517578125” to_f显然不起作用: r.to_f #=> 3.0517578125e-05 并且sprintf要求我指定位数: sprintf(‘%.30f’, r) #=> “0.000030517578125000000000000000”

理性 – ruby中的原始数字

我如何获得原始数字? 例如,当我键入: r = Rational(2, 10) # (1/5) 2和10将更改为1和5: r.numerator # 1 r.denominator # 5 如何从Rational class( r )的实例获得2和10? 我修补了Rational类并创建了新方法( Rational_o ): def Rational_o *args x, y = args r = Rational *args rx = x ry = y r end class Rational attr_accessor :x, :y end 它有效,但有存储原始x和y的内置方法或变量吗?