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);