日期:2014-05-20  浏览次数:21167 次

float类型数据转成string类型后 精度减弱
问题原形是asp.net上的欠款提示,发现float类型数据转成string类型后精度度减弱,在Console下试了一下也有这个问题。
在代码如下:
float   money1   =   12345678;
string   strMoney1   =   Convert.ToString(money1);
Console.WriteLine(money1);
Console.WriteLine(strMoney1);

执行结果都是:1.234568E+07
我想保证精确度不变,各位大虾有什么办法啊?


------解决方案--------------------
用decimal指定精度
------解决方案--------------------
使用 "R "做格式化保证string可以Parse成和原先浮点数相等:

float money1 = 12345678.1234567;
string strMoney1 = money1.ToString( "r ");
Console.WriteLine( "{0:r} ", money1);
Console.WriteLine(strMoney1);