问题描述
原Excel的数据比如C列是计算出来的,C=A/B假设C列的实际值是:9.48999999999999保留2位后显示值是:9.49C#通过connStr="Provider=Microsoft.ACE.OLEDB.12.0;"+"DataSource="+fileName+";"+";ExtendedProperties="Excel12.0;HDR=YES;IMEX=1"";这种来获取数据时,取到的值是实际值:9.48999999999999,不是显示值:9.49。这要怎么处理?注:保留几位小位不是固定的,有可能是保留1位,有可能保留2位等等,只是想要的结果是,显示什么就取到什么。
解决方案
解决方案二:
给个例子DoubledValue=95.12345;intiValue=10000;stringstrValue="95.12345";stringresult="";result=Convert.ToDouble(dValue).ToString("0.00");//保留小数点后两位,结果为95.12result=Convert.ToDouble(iValue).ToString("0.00");//10000.00result=Convert.ToDouble(strValue).ToString("0.00");//95.12result=Convert.ToDouble(dValue).ToString("P");//得到小数点后2位的百分比,自动加上%号;//9512.35%result=Convert.ToDouble(strValue).ToString("f4");//保留小数点后4位;//95.1235//要注意的一点是Convert.ToDouble一定要是这种双精度的,不然会报错。还可以用Math函数中的round取药保留的位数。