浮点数相减后的奇怪结果?
在C#中:
float i = 317.4f;
float j = 317.3f;
float k = i - j;
MessageBox.Show(k.ToString());
k的值为0.1000061
如果换成double型的
double i = 317.4;
double j = 317.3;
double k = i - j;
MessageBox.Show(k.ToString());
k的值为:0.0999999999999659
这是为什么呢?
------解决方案--------------------类型 大致范围 精度 .NET Framework 类型
double ±5.0 × 10?324 到 ±1.7 × 10308 15 到 16 位 System.Double
类型 大致范围 精度 .NET Framework 类型
float ±1.5 × 10-45 to ±3.4 × 1038 7 位 System.Single