提问人:Henrik 提问时间:11/17/2011 更新时间:11/18/2011 访问量:1125
Ruby 单精度数
Ruby single precision number
问:
我正在尝试在 Ruby 的 Windows 上使用 COM 组件,该组件需要单精度数字。
在 C# 中,我能够像这样将数字从双精度转换为单精度。
float mynumber = (float)2.0
如何在 Ruby 中创建单精度浮点数?
答:
1赞
undur_gongor
11/17/2011
#1
Ruby 本身不支持单精度浮点数。
您可以使用 gem float-formats 以不同的浮点格式进行计算/转换。
但是,要将此 gem 创建的对象传递给 COM 对象,必须以某种方式将其转换为预期的内存表示形式。
4赞
David Grayson
11/18/2011
#2
Ruby 只有一个浮点类,它是双精度的。我还没有在 ruby 中使用过 COM,但我希望接口能够自动将 ruby 浮点数转换为它需要的类型。您是否尝试过将普通的红宝石浮点传递给它?会发生什么?你能发布一些示例代码来演示这个问题吗?
编辑1:
可以使用 pack 方法将 ruby float 转换为内部具有单个精度浮点数的二进制字符串:
http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-pack
尝试:
[2.0].pack "f"
评论