日期:2014-05-18  浏览次数:20411 次

string类型转float类型的问题!急!急!急!
C# code
sales.NowTransactionPrice = Convert.ToSingle(decimal.Parse(Txt_SalesVal.Text));

我要往数据库里面添加一行价格信息,添加1.5之类的数据都没问题。但是,当我添加1.65等之类的数据之后,数据存入数据库变得不准确。求解释!

------解决方案--------------------
不准确是正常的,浮点型的存储很特殊,不是那么的精确,是按照IEEE74标准执行的
------解决方案--------------------
看你那个属性应该是价钱,应该用decimal(数据库对应money)类型,float是近似数
------解决方案--------------------
探讨

不准确是正常的,浮点型的存储很特殊,不是那么的精确,是按照IEEE74标准执行的

------解决方案--------------------
探讨

顶一下,有没有别的办法解决啊!

------解决方案--------------------
保存有效位数。。比如float型数据保留小数点后2位可以写成下面这样

C# code

float a = 999.3599f; //设数值
int b = (int)Math.round(a_*100); //小数点后两位前移,并四舍五入
float c = (double)b / 100.00; //还原小数点后两位