33299


▶︎環境：macOS Sierra Version 10.12.3  
2進計算に起因する微小誤差の影響のない計算scriptが興味を引きました。  
以下のもので、数度の数値入力＋enterで取得した数値の合計を出力するそうです。

[code]

    require "BigFloat"
    s = BigFloat.new("0")
      while f = ARGF.gets do
        s = s + f
      end
    puts "合計：",s.to_s
    
[/code]

BigFloatのダウンロード先が消滅しているため、現在使えない旧ライブラリと考えますが、BigFloatの代わりとなるオブジェクトは存在するのでしょうか？
やりたいことは、誤差無し計算・10進計算です。

（適切な用語の使用に自信がありません。もしダウンロード等の手順が存在したときはわかりやすく説明いただけますと幸いです。）


CC BY-SA 3.0
2017-03-13T06:31:56.387
33290
2017-03-13T22:10:48.093
2017-03-13T07:38:33.773
5044
20591
question
ruby
Ruby：BigFloatの代替について


標準でバンドルされる[bigdecimalライブラリ](https://docs.ruby-
lang.org/ja/2.0.0/library/bigdecimal.html)のBigDecimalを使用してください。macOS
Sierra標準のRubyにもバンドルされています。

[code]

    require 'bigdecimal'
    s = ARGF.each_line.inject(BigDecimal('0')) do |sum, line|
      sum + BigDecimal(line)
    end
    puts "合計：#{s.to_s('f')}"
    
[/code]

なお、macOS
Sierra標準のRubyは2.0.0p648と古いバージョンのため、最新の機能が使えず、パフォーマンスもいささか悪いです。配布してどのMacでも使用できる物を作成するといった事情がなければ、Homebrewやrbenv
+ ruby-build等で最新バージョンを入れることをオススメします。


CC BY-SA 3.0
2017-03-13T22:10:48.093
33299
2017-03-13T22:10:48.093
7347
33290
answer