在32位系统下,int是32位的
在64位系统下,int是64位的
所以胡乱移植可能导致数据溢出而不自知
多方面因素,可能也跟编译器预处理,连接器也有关系。
精度差正好在float和double中间,追踪一下所有相关链条,显示转换为double看看。
浮点数表示的问题,比如你算4/2=2.0其实内部是
2.000000012
类似这样,如果数越来越小不影响,如果你要乘,乘上十亿,数字大了后小数点后面的就会影响精度.
底层数据类型的不同
操作系统不通,数据处理方式有差异,还有系统位数也有关系
信息详细一点,或者把程序发出来。