汽车电话营销:C#数据类型转换问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 14:27:26
double d=2.01d;
int idx;
idx=(int)(100*a);
结果idx=200;
如果d=2.02,2.04则结果正常,
d=2.03时,idx=202
d=2.05时,idx=204
高手帮忙看看是怎么回事

应该是 2进制问题
2.03 2.05 是不可以转换为对应的2进制形式的 只可以转换为非常接近的2进制形式,而这个非常接近的数是比原先的10进制数少的,所以就发生你说的情况。

而2.02 2.04可能他在系统中的2进制形式比他们大吧

具体你自己可以探讨下~