首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

(int)((Convert.ToSingle("1.3")) * 10)不等于13?解决方案

2012-05-21 
(int)((Convert.ToSingle(1.3)) * 10)不等于13?int i (int)((Convert.ToSingle(1.3)) * 10)为什么i

(int)((Convert.ToSingle("1.3")) * 10)不等于13?
int i = (int)((Convert.ToSingle("1.3")) * 10);
为什么i等于12

[解决办法]
Convert.ToSingle("1.3")

Single是浮点数,所以计算并不是精确的
1.3*10有可能等于 12.9999999999999x 或者13.0000000000000x 当然,这个结果是固定的,我只是想说浮点运算的结果不是精确的。

(int)强制转换成int,这个是强制截位的转换,说白了就是直接保留整数部分,小数部分直接扔掉。

总结一句,就是浮点数做运算得到的不是精确结果,只是近似结果。

热点排行