最近发现了一些数据进行强行转化时的问题,需要注意以下。
用float & int 为例子
错误1.(int)(0.7f/0.1f)=7;
这是错误的,正确答案应该是=6。
Convert.toInt32(0.7f/0.1f)=7;这是正确的。
错误2.
Convert.toInt32(0.7f/0.1f)-0.7f/0.1f=0;
这是不相等的。正确为:
Convert.toInt32( Convert.toInt32(0.7f/0.1f)-0.7f/0.1f)=0
(int)(0.7f/0.1f)-0.7f/0.1f=-0.9999998;
将iint 替换为 Int32结果也是一样的。
我们以后再编程时要注意这一点。否则可能会出现错误,而且还不知道在哪里。