Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 防止FloatDomainError NaN_Ruby On Rails_Ruby_Exception - Fatal编程技术网

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#/
总是返回浮点数。