两个十进制浮点数在单元格中变成许多小数
我有一个NameValueCollection值为.22。 该值被加载到一个float fValue
。
写入Excel时,debugging时的值为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,我无法弄清楚发生了什么事情。 有任何想法吗?
既然你正在处理价格,你应该使用十进制types。 从msdn https://msdn.microsoft.com/en-us/library/364x0z75.aspx 。 很高兴帮助你
浮点数只有一定的精度。 可以表示的最接近0.22的数字就是你在表格中看到的数字。 你最好打赌是使用不同的types,如fValue
decimal
,不受这种impecision。
编辑:如果你在这里input0.22
,你可以看到我的意思。