9

学校のプロジェクト(自転車工場)の在庫/生産プログラムをプログラミングしていますが、生産する必要がある自転車などの数を切り上げる必要があります(放射性降下物のために2倍になります)。

次のコードを使用する場合:

double test = Math.Ceiling(100 * 1.09);

label75.Text = Convert.ToString(test);

答えは 110 ですが、そうではありません。109 (100 の 9%) である必要があります。ただし、9% 未満の値で動作するようです。

私は何を間違っていますか?

4

2 に答える 2

7

浮動小数点演算は基数 10 ではなく、基数 2 です。double型には、正確に基数 2 に相当するものはありません。1.09

説明のために、次のプログラムの最後にブレークポイントを置くと

public static void Main()
{

    double test = 100 * 1.09;
}

testとして表示されるよりも109.00000000000001

于 2013-09-11T21:02:03.523 に答える