string a = "497074.73";
float b = Convert.ToSingle(a);
b=497074.719
为什么数值改变了?
浮点数有一个精度的问题,但也不应该变化如此大,如果是 b=497074.729 还能理解,但是 b=497074.719 就不能理解了。
是不是输入错误 了???
string a = "47174.73";
float b = Convert.ToSingle(a); //47174.73
string a = "471074.73";
float b = Convert.ToSingle(a); //471074.7
string a = "47111074.73";
float b = Convert.ToSingle(a); //4.711108E+07
这和float的精度为6~7位有效数字有关:
这和float的精度为6~7位有效数字有关: 结果0.19 精确到16 位后,用二进制表示为0.0011000010100011
这和float的精度为6~7位有效数字有关: 结果0.19 精确到16 位后,用二进制表示为0.0011000010100011