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

浮点数相减后的奇怪结果?
在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