读书人

浮点数相减后的奇怪结果?解决思路

发布时间: 2012-02-05 12:07:14 作者: rapoo

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

读书人网 >C#

热点推荐