Tag: 型转换

如何将binary32转换为ruby中的float

我在IEEE 32中编码了binary32。 如何将0x0040EDC2转换为-118,625? 我已经尝试了几种打包和打开包装但没有成功。 IEEE: http : //en.wikipedia.org/wiki/Single-precision_floating-point_format 马努

避免在Ruby中从Fixnum自动转换为Bignum

我正在将一个算法从C#移植到Ruby。 该算法有一个方法返回有时溢出的int 。 private static int NextRandom(int n) { return 1234567890 * n + 12345; } 该算法利用溢出来避免此函数返回的值超出范围。 但是,Ruby的行为方式不同,它会自动将值转换为Bignum,这似乎没有限制……如何在Ruby中实现相同的目标?

如何检查值是否为Integer(),Float()或Rational()的有效输入?

这基于“ 如何将字符串转换为整数或浮点数 ”。 如果我想使用Ruby的内置转换机制将数字字符串输入转换为“最合适的类型”,我可以这样做: def convert(input) value = Integer(input) rescue nil value ||= Float(input) rescue nil value ||= Rational(input) rescue nil value end convert(‘1’) #=> 1 convert(‘1_000’) #=> 1000 convert(‘0xff’) #=> 255 convert(‘0.5’) #=> 0.5 convert(‘1e2’) #=> 100.0 convert(‘1/2’) #=> (1/2) convert(‘foo’) #=> nil 但这种暴力方法调用看起来很脏。 有更优雅的方式来解决这个问题吗? 我可以检查值是否是Integer() , Float()或Rational()的有效输入,这样我可以以更加可控的方式调用这些方法吗?

检查Float是否等效于Ruby中的整数值

说我有以下代码: x = 0.8 y = 1.0 检查y是否相当于Integer的最佳方法是什么? 目前我正在做: y.to_int == y 哪个有效,但我觉得应该有更好的方法。