2

我在 NameValueCollection 中有一个值为 0.22 的值。该值被加载到 floatfValue中。

调试时为 fValue=0.22,写入 Excel 时。

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 的数字是您在表格中看到的数字。你最好的选择是使用不同的类型,例如decimal不会fValue受到这种不精确的影响。

编辑:如果你0.22 在这里输入,你可以明白我的意思。

于 2016-01-21T20:28:13.663 回答