Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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 RubyonRails-与to_f求和返回错误值_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails RubyonRails-与to_f求和返回错误值

Ruby on rails RubyonRails-与to_f求和返回错误值,ruby-on-rails,ruby,Ruby On Rails,Ruby,但这将返回3.5500000000000003,而不是3.55 有什么想法吗?浮点数不能精确地表示所有实数,而浮点数运算不能精确地表示真正的算术运算,这导致了许多令人惊讶的情况 我建议阅读: 您可能希望使用以避免此类问题: prices = ["1.6", "0.15", "1.8"] prices.sum { |price| price.to_f } 浮点数不能精确地表示所有实数,而浮点数运算不能精确地表示真算术运算,这导致了许多令人惊讶的情况 我建议阅读: 您可能希望使用以避免此类问题:

但这将返回
3.5500000000000003
,而不是
3.55


有什么想法吗?

浮点数不能精确地表示所有实数,而浮点数运算不能精确地表示真正的算术运算,这导致了许多令人惊讶的情况

我建议阅读:

您可能希望使用以避免此类问题:

prices = ["1.6", "0.15", "1.8"]
prices.sum { |price| price.to_f }

浮点数不能精确地表示所有实数,而浮点数运算不能精确地表示真算术运算,这导致了许多令人惊讶的情况

我建议阅读:

您可能希望使用以避免此类问题:

prices = ["1.6", "0.15", "1.8"]
prices.sum { |price| price.to_f }

BigDecimal(nil)抛出错误。当然。
nil
从哪里来?在你原来问题中的数组中没有
nil
[“1.6”、“0.15”、“1.8”、nil].sum(&:to\r).to\f
似乎与nil一起工作。你可以
要求'bigdecimal/util'
并使用
[“1.6”、“0.15”、“1.8”、nil]。sum(&:to\d)
nil
值视为
0.0
,就像
to_f
一样,BigDecimal(nil)抛出错误。当然。
nil
从哪里来?在你原来问题中的数组中没有
nil
[“1.6”、“0.15”、“1.8”、nil].sum(&:to\r).to\f
似乎与nil一起工作。你可以
要求'bigdecimal/util'
并使用
[“1.6”、“0.15”、“1.8”、nil]。sum(&:to\d)
nil
值视为
0.0
,就像
到\u f
一样。