2

NameValueCollection に .22 の値があります。その値は float にロードされますfValue

値は、Excel に書き込むと、デバッグで fValue=0.22 になります。

InvoiceWs.Cells["I" + iRow.ToString()].Style.Numberformat.Format = "$#,##0.00";
fValue = float.Parse(nvcUnitPrice["LG3000"].ToString());
InvoiceWs.Cells["I" + iRow.ToString()].Value = fValue;

Excel ファイルを開くと、値が 0.219999998807907 で、何が起こっているのかわかりません。何か案は?

ここに画像の説明を入力

4

2 に答える 2

3

価格を扱っているので、小数タイプを使用する必要があります。msdn https://msdn.microsoft.com/en-us/library/364x0z75.aspxから。お役に立ててうれしいです

于 2016-01-21T20:30:29.727 に答える
1

浮動小数点数には一定の精度しかありません。表現できる 0.22 に最も近い数値が、表に表示されているものです。そのような不正確さに悩まされないdecimalforなどの別のタイプを使用することをお勧めします。fValue

編集:0.22 ここに入力すると、私が何を意味するかがわかります。

于 2016-01-21T20:28:13.663 に答える