首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出Ruby中的浮点数是多少?

问如何找出Ruby中的浮点数是多少?
EN

Stack Overflow用户
提问于 2014-11-08 08:21:21
回答 1查看 1.4K关注 0票数 0

根据医生们的说法,Ruby是一个“使用本机架构的双精度浮点表示的不精确实数”。

这是否意味着在32位Ruby上,它们等同于C float,在64位Ruby上等效于C double

如果是,我如何在运行时找到程序运行在哪个Ruby上(准确地说,是多少位)?它应该适用于任何操作系统和任何ruby实现(mri、rubinius和jruby)。

我想出的解决办法是:

代码语言:javascript
复制
def architecture_bits
  1.size * 8
end

这在任何情况下都有效吗?有没有更好/更优雅的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-08 08:41:36

单/双精度浮动的大小与您是否正在运行ruby的64/32位实现无关,因此您的实现将在ruby的任何32位实现上返回错误的答案。

浮点数定义了常量,如Float::MANT_DIG和Float::MAX_EXP,您可以从它们导出浮点数所使用的存储量。如果不是ieee 754的双精度(53位尾数(其中52位是存储的),1位符号,11位指数),这将是非常罕见的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26815203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档