Ruby单精度数

时间:2011-11-17 15:40:18

标签: ruby numeric floating-accuracy

我正在尝试在Ruby上的Windows上使用COM组件,它希望单精度数字。

在C#中,我能够将数字从双精度转换为单精度。

float mynumber =  (float)2.0

如何在Ruby中创建单精度浮点数?

2 个答案:

答案 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对象,你必须以某种方式将它转换为预期的内存表示。