我正在尝试在Ruby上的Windows上使用COM组件,它希望单精度数字。
在C#中,我能够将数字从双精度转换为单精度。
float mynumber = (float)2.0
如何在Ruby中创建单精度浮点数?
答案 0 :(得分:4)
Ruby只有一个float类,它是双精度的。我没有在ruby中使用COM,但我希望接口能够自动将ruby float转换为它需要的类型。你试过把普通的红宝石漂浮物传递给它吗?怎么了?你能发布一些示例代码来证明这个问题吗?
编辑1:
您可以使用pack方法将ruby浮点数转换为内部具有单个精度浮点数的二进制字符串:
http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-pack
尝试:
[2.0].pack "f"
答案 1 :(得分:1)
Ruby本身不支持单精度浮点数。
您可以使用gem float-formats以不同的浮动格式进行计算/转换。
但是为了将这个gem创建的对象交给COM对象,你必须以某种方式将它转换为预期的内存表示。