楼主问的是用法的区别.int 是精确的整数,因此相关的数学常识都可以在int上得到实现;float 是不精确的浮点数,因此很多要求精确的数学常识在float上不成立.举例: 假设 a b c 都是 int那么 a+b+c 和 c+b+a 的结果永远是相等的(哪怕溢出了也相等)而如果 a b c 都是float,则上面算式是不成立的 两个的计算结果很可能不一样(但是误差为机器0, 在64位上误差比32位小得多)也就是 0.4999+0.5001 有可能等于 1 也有可能等于0.99999999999998 或者 1.00000000001