Ruby on rails 防止FloatDomainError NaN
在此计算中:Ruby on rails 防止FloatDomainError NaN,ruby-on-rails,ruby,exception,Ruby On Rails,Ruby,Exception,在此计算中: months = (saved_cents / spend_cents).to_f.floor 我得到以下错误: FloatDomainError: NaN 我认为saved_美分和spend_美分都是浮动的,这就是为什么我不明白为什么会出现这个错误 这一错误的原因可能是什么?如何修复它?根据文档,a是: 在尝试将特殊浮点值(特别是无穷大或NaN)转换为不支持它们的数值类时引发 在您的代码中,当两个值都为零时,会发生FloatDomainError: saved_cents =
months = (saved_cents / spend_cents).to_f.floor
我得到以下错误:
FloatDomainError: NaN
我认为saved_美分
和spend_美分
都是浮动的,这就是为什么我不明白为什么会出现这个错误
这一错误的原因可能是什么?如何修复它?根据文档,a是: 在尝试将特殊浮点值(特别是
无穷大
或NaN
)转换为不支持它们的数值类时引发
在您的代码中,当两个值都为零时,会发生FloatDomainError
:
saved_cents = 0.0
spend_cents = 0.0
(saved_cents / spend_cents).floor
#=> FloatDomainError: NaN
因为零除以零是NaN
:
saved_cents / spend_cents
#=> NaN
尽管NaN
是一个浮动,但尝试向其发送floor
消息会导致该错误:
Float::NaN.floor
#=> FloatDomainError: NaN
这一错误的原因可能是什么?我怎样才能修好它
仔细检查你的输入。可能还有另一个错误将值意外设置为
0.0
。根据文档,a是:
在尝试将特殊浮点值(特别是无穷大
或NaN
)转换为不支持它们的数值类时引发
在您的代码中,当两个值都为零时,会发生FloatDomainError
:
saved_cents = 0.0
spend_cents = 0.0
(saved_cents / spend_cents).floor
#=> FloatDomainError: NaN
因为零除以零是NaN
:
saved_cents / spend_cents
#=> NaN
尽管NaN
是一个浮动,但尝试向其发送floor
消息会导致该错误:
Float::NaN.floor
#=> FloatDomainError: NaN
这一错误的原因可能是什么?我怎样才能修好它
仔细检查你的输入。可能还有另外一个错误,它意外地将值设置为
0.0
。到f
是多余的,如果两者都是浮动的话,节省的钱和花费的钱都是浮动的,因为浮动
总是返回一个浮动。到f
是多余的,如果两者都是浮动的话,saved_美分
和spend_美分
都是浮点数,因为Float#/
总是返回浮点数。