<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>「小数（浮動小数点数型）の計算が思った結果にならない理由と解決法」へのコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=beginner%2Ffloatingpointerror.html</link>
<description>「小数（浮動小数点数型）の計算が思った結果にならない理由と解決法」に投稿されたコメントの一覧</description>
<language>ja</language>
<image>
<url>https://dobon.net/banner/dbs1.gif</url>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=beginner%2Ffloatingpointerror.html</link>
<title>「小数（浮動小数点数型）の計算が思った結果にならない理由と解決法」へのコメント</title>
<width>88</width>
<height>31</height>
</image>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=beginner%2Ffloatingpointerror.html#13</link>
<description><![CDATA[&gt; 補足：DoubleのToStringメソッドをパラメータなしに呼び出した場合は、Doubleの有効桁数である15桁までしか文字列にせず、それ以降は丸められるため、この方法で誤差を確認することはできません。<br><br>.NET (Core) 3.0 以降はToString()だけで大丈夫になりました↓<br><br>```<br>double d1 = 0.3;<br>double d2 = 0.1 + 0.2;<br><br>Console.WriteLine(d1.ToString()); //0.3<br>Console.WriteLine(d2.ToString()); //0.30000000000000004<br><br>Console.WriteLine(d1 == d2); //False<br>```]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#12</link>
<description><![CDATA[評価：良い<br>勉強になりました]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#11</link>
<description><![CDATA[評価：良い<br>goodgood]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#10</link>
<description><![CDATA[浮動小数点数の一致判定には計算機イプシロン（「1より大きい最小の数」と1との差）を活用した判定式を用いますが，Double.Epsilonは計算機イプシロンではないそうです．<br><br>IEEE 754規格binary64形式での計算機イプシロンは約2.22E-16なのに対して，<br>Double.Epsilonは4.94065645841247E-324と定義されています．こちらはゼロより大きい最小の非正規化数だそうです．<br><br>よって，.NETでは自前で計算機イプシロンを定義して使用するのが良いようです．素人が調べた範囲のことなので不正確かもしれませんが，合っているようでしたら記事への反映をご検討ください．]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#9</link>
<description><![CDATA[decimal を使ったことがなかったので、delphiのCurrency型の機能を探していました。ありがとうございます。<br>decimal をベースに、Currencyクラスを作成し、<br>基本はdecimalで、最後に取り込むときに、<br>(Math.Round(value, 15))で返すcurrencyプロパティを作り使えるかなと思ってます。<br>以下、Currencyクラスの一部分を付けます。<br>---------------------------------------<br>   public class Currency<br>    {<br>        decimal value;<br>        public decimal currency<br>        {<br>            get { return (Math.Round(value, 15)); }<br>            set { this.value = Math.Round(value, 21); }<br>        }<br>        public Currency(decimal inData)<br>        {<br>            this.value = Math.Round(inData, 21);<br>        }<br>        public static Currency operator +(Currency z, Currency w)<br>        {<br>            return new Currency(z.value + w.value);<br>        }<br>        public static Currency operator +(Currency z, int w)<br>        {<br>            return new Currency(z.value + w);<br>        }<br>以下、 + - * / の　operator　を同様に作成する。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#8</link>
<description><![CDATA[評価：良い<br>初心者です。出力が思った通りに出なくて、「微小な誤差のせいかな」「そういえばsingleなんて使うなって言っていた人がいたな」と思って調べていたらここに来ました。<br>大変参考になりました。ありがとうございました]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#7</link>
<description><![CDATA[評価：良い<br>コンピューターが小数を正しく扱えないことは知っていましたが、まさか0.1+0.2で間違うとは。。<br>面白い記事です。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#6</link>
<description><![CDATA[評価：良い<br>簡潔で見易く分かり易かったです。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#5</link>
<description><![CDATA[評価：良い<br>すばらしいまとめです。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#4</link>
<description><![CDATA[助かりまっサー]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#3</link>
<description><![CDATA[評価：良い<br>Good!]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#2</link>
<description><![CDATA[非常に助かる]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=beginner%2Ffloatingpointerror.html#1</link>
<description><![CDATA[評価：良い<br>大変参考になりました。詳しく書いていただき勉強もたくさんできました。ありがとうございました。]]></description>
</item>
</channel>
</rss>