一般的情况是函数在其封闭集合里可以有定义。比如整数的加减乘都还是整数,这些就可以定义参数为整数。
没有必要,double类型可以完整的无损的容纳一个int,所以double作为int的上位替代品,int在这里没有必要存在了。
很多人存在一个误解,认为但凡浮点就不精确,不过浮点不精确是在特定条件下发生的。在「容纳一个32位int类型数据」这个用途上,double是精确的。