https://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112018-11-16T18:34:10ZRuby Issue Tracking SystemRuby master - Bug #15312: Ruby gives me wrong result for plus operationhttps://redmine.ruby-lang.org/issues/15312?journal_id=748992018-11-16T18:34:10ZAnonymous
<ul></ul><p>This is not a bug, that's how floating point arithmetic works in accordance with the IEEE 754 standard.</p>
<p>You can read more about that on Wikipedia or in this article: <a href="https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" class="external">https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html</a></p>
<p>To get mathematically correct results you should be using <a href="https://ruby-doc.org/stdlib-2.5.3/libdoc/bigdecimal/rdoc/BigDecimal.html" class="external">BigDecimal</a> or <a href="https://ruby-doc.org/core-2.5.3/Rational.html" class="external">Rational</a>.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">require</span> <span class="s1">'bigdecimal'</span>
<span class="no">BigDecimal</span><span class="p">(</span><span class="s1">'2.7'</span><span class="p">)</span> <span class="o">+</span> <span class="no">BigDecimal</span><span class="p">(</span><span class="s1">'0.1'</span><span class="p">)</span> <span class="c1">#=> 0.28e1</span>
</code></pre> Ruby master - Bug #15312: Ruby gives me wrong result for plus operationhttps://redmine.ruby-lang.org/issues/15312?journal_id=749002018-11-16T18:37:40Zmarcandre (Marc-Andre Lafortune)marcandre-ruby-core@marc-andre.ca
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Rejected</i></li></ul><p>See also <a href="https://0.30000000000000004.com/" class="external">https://0.30000000000000004.com/</a></p> Ruby master - Bug #15312: Ruby gives me wrong result for plus operationhttps://redmine.ruby-lang.org/issues/15312?journal_id=749022018-11-17T01:28:08Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul></ul><p>You can write rational numbers by <code>r</code> suffix.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">p</span> <span class="mf">0.1</span><span class="n">r</span> <span class="o">+</span> <span class="mf">0.2</span><span class="n">r</span> <span class="c1">#=> (3/10)</span>
</code></pre>
<p>As I found these literals (<code>r</code> and <code>i</code>) have not been mentioned in <code>doc/syntax/</code>, added them now (r65773).</p> Ruby master - Bug #15312: Ruby gives me wrong result for plus operationhttps://redmine.ruby-lang.org/issues/15312?journal_id=749032018-11-17T01:28:46Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/74903/diff?detail_id=50289">diff</a>)</li></ul>