https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2013-04-19T17:43:41Z
Ruby Issue Tracking System
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38743
2013-04-19T17:43:41Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Category</strong> changed from <i>lib</i> to <i>ext</i></li><li><strong>Assignee</strong> set to <i>mrkn (Kenta Murata)</i></li><li><strong>Target version</strong> set to <i>2.6</i></li></ul>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38832
2013-04-23T21:59:02Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Rejected</i></li></ul><blockquote>
<p>Rational も分母が 2 と 5 以外の約数を持たない場合</p>
</blockquote>
<p>これを実現するパッチはすでに持っていて、精度の問題を解決してから取り込もうと考えていました。<br>
先に入れても良さそうなので、近いうちにマージします。</p>
<blockquote>
<p>そういった場合に、BigDecimal(0.1, nil) のように精度に nil を指定すれば、正確な変換が行われたら便利</p>
</blockquote>
<p>IEEE754 の環境において BigDecimal(0.1, nil) で何が与えられることを期待していますか?</p>
<blockquote>
<p>Rationalについては、任意の n 進法 を指定して正確な文字列表現にできる場合には変換するという機能(たとえば、 Rational(1, 3) は、3 進法で 0.1 です)というのもありうる</p>
</blockquote>
<p>これはあり得ません。<br>
BigDecimal は名前から想像できるように「十進浮動小数点数」です。<br>
そのような機能を望むのであれば、別名のライブラリにするひつようがあると思います。</p>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38864
2013-04-24T18:31:18Z
metanest (Makoto Kishimoto)
<ul></ul><blockquote>
<p>IEEE754 の環境において BigDecimal(0.1, nil) で何が与えられることを期待していますか?</p>
</blockquote>
<pre><code>#=> #<BigDecimal:8011820c8,'0.1000000000 0000000555 1115123125 7827021181 5834045410 15625E0',63(72)>
</code></pre>
<p>を期待しているのですが、やはりちょっと無茶ですかねぇ。</p>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38867
2013-04-24T20:16:32Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul><li><strong>Status</strong> changed from <i>Rejected</i> to <i>Assigned</i></li></ul>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38868
2013-04-24T20:21:54Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul></ul><p>metanest (Makoto Kishimoto) wrote:</p>
<blockquote>
<blockquote>
<p>IEEE754 の環境において BigDecimal(0.1, nil) で何が与えられることを期待していますか?</p>
</blockquote>
<pre><code>#=> #<BigDecimal:8011820c8,'0.1000000000 0000000555 1115123125 7827021181 5834045410 15625E0',63(72)>
</code></pre>
<p>を期待しているのですが、やはりちょっと無茶ですかねぇ。</p>
</blockquote>
<p>なるほど〜。理屈はわかりました。Rational とやり方は同じなので難しくありませんね。<br>
やってみます。</p>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=38884
2013-04-25T12:12:30Z
metanest (Makoto Kishimoto)
<ul></ul><p>Gist に置いた概念コードでだいたいの考え方を示したつもりなんですが、<br>
BigDecimal に「変換される」側のオブジェクト(たとえばRationalの<br>
インスタンス)が、自分が正確に変換できるかどうか判断するという<br>
設計にするのが綺麗かな、という風に考えました。</p>
Ruby master - Feature #8295: Float や Rational から(可能であれば)正確な BigDecimal を生成する機能
https://bugs.ruby-lang.org/issues/8295?journal_id=68903
2017-12-25T18:15:12Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Target version</strong> deleted (<del><i>2.6</i></del>)</li></ul>