ActiveModel :: Type :: Integer的最大数量

时间:2018-05-21 20:46:32

标签: ruby-on-rails numbers byte ruby-on-rails-5 activemodel

我尝试将号码3980040429存储为对象的ID,但我发现了以下错误:

ActiveModel::RangeError (3980040429 is out of range for ActiveModel::Type::Integer with limit 4 bytes)

4个字节是否等于4 294 967 296

4 bytes × 8 bits = 32 bits 
2³² = 4 294 967 296

由于我出乎意料地错了 - 我可以为ID保存的最大整数是什么?

我在Rails 5.2和Postgres 9.6上。

1 个答案:

答案 0 :(得分:0)

这是一个带符号的4字节整数。

因此它可以具有的最大值是2³¹-1

2147483647