Rails 验证的最大浮点数是多少?

Ama*_*ari 2 validation ruby-on-rails

我有以下验证:

class Metrics
  validates :verbs_count, allow_nil: true, numericality: { greater_than_or_equal_to: 1, less_than_or_equal_to: ? }
end
Run Code Online (Sandbox Code Playgroud)

我想知道在不丢失精度的情况下浮点数的最大值是多少。我知道这似乎是一个应该很容易找到答案的问题,但我没有找到。

Seb*_*lma 5

根据文档(不在https://api.rubyonrails.org/页面中,而是在 master的代码中):

通过尝试将指定属性的值转换为浮点数Kernel.Float(ifonly_integer 为 false)或将其应用于正则表达式/\A[\+\-]?\d+\z/ (ifonly_integer设置为true)来验证指定属性的值是否为数字。

Kernel.Float值的精度保证高达 15 位。

您正在寻找的答案可能在这里:“ Kernel.Float 值的精度保证高达 15 位” - 因为没有最大数字,所以您可以使用任何您想要的东西,只要记住更大的数字会丢失精确。