加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby中Fixnum和Bignum的最大值和最小值

发布时间:2020-12-17 03:25:06 所属栏目:百科 来源:网络整理
导读:我想知道Fixnum和Bignum的范围. 在Float中,我可以使用Float :: MAX和Float :: MIN获得Float的范围. Fixnum和Bignum中没有类似的常量. 实现这一目标的最佳方法是什么? 解决方法 忘记 Fixnum 和 Bignum .它们是私有的内部实现细节.他们是优化.你应该忽略它们.
我想知道Fixnum和Bignum的范围.
在Float中,我可以使用Float :: MAX和Float :: MIN获得Float的范围.
Fixnum和Bignum中没有类似的常量.
实现这一目标的最佳方法是什么?

解决方法

忘记 FixnumBignum.它们是私有的内部实现细节.他们是优化.你应该忽略它们.你应该关注的唯一课程是 Integer.

ISO Ruby Language Specification仅指定Integer类.它允许特定于实现的子类,但它不指定它们.

Fixnums是一种优化,应该是实现的内部优化,并且永远不应该暴露给程序员.想想YARV中的flonums.你有没有注意到flonums were introduced in YARV 2.0?他们所做的就是让Float更快.但你永远不会看到他们.这是应该的.

事实上,YARV 2.4 removes Fixnum and Bignum and will only have Integers in the future.由于向后兼容的原因,Fixnum和Bignum将作为Integer的别名保留一段时间,但是类本身将会消失.

在Ruby中,整数没有最大值或最小值;它们是任意大小的整数.因此,没有任何这样的常数.

Fixnums的大小限制(如果它们一直存在)取决于平台和实现.在JRuby上,Fixnums总是64位,在YARV上,它们在64位平台上是63位,在32位平台上是31位.在蛋白石上,整数被实现为ECMAScript数字(实际上是IEEE754浮点数,因此仅对53位精确),以及I don’t think they even have Fixnums or Bignums.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读