小数(浮動小数点数型)の計算が思った結果にならない理由と解決法 Decimal型はいつ使うか?小数の計算をしていて、その計算結果が常識では考えられない、変な値になったという経験はないでしょうか?単精度浮動小数点型であるSingle型(C#では、float型)や、倍精度浮動小数点数型であるDouble型(C#では、double型)を使った計算ではそのようなことがあります。ここではそのようなことが起こる理由と、その対策を説明します。 また、Decimal型はどのような時に使うのかについても説明しています。 不可解な小数の計算の例「0.1 + 0.2 = 0.3」は正しいでしょうか?数学では、当然そうでなくては困ります。 それでは、VB.NETで「0.1 + 0.2 = 0.3」(C#では、「0.1 + 0.2 == 0.3」)は「True」になるでしょうか?実は「False」になります。信じら