我在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,我无法弄清楚发生了什么。有什么想法吗?
答案 0 :(得分:3)
由于您正在使用价格,因此应使用小数类型。来自msdn https://msdn.microsoft.com/en-us/library/364x0z75.aspx。很高兴为您提供帮助
答案 1 :(得分:1)
浮点数只有一定的精度。可以表示的最接近0.22的数字就是您在表格中看到的数字。您最好的选择是使用decimal
之类的其他类型,而fValue
不会受到此类限制。
修改:如果您输入0.22
here,就会明白我的意思。