在C中,除法是有一些特殊的。
如果是两个整数型的变量相除,如10/3,其结果是3,而不是3.3333333;又如10/4,其在C中的结果是2,而不是2.5。也就是说,整数型变量相除,如果其结果从数学角度上看是小数,无论是否可以四舍五入进位,C都会讲小数点后的部分抛弃。
只有将初始化变量为浮点数类型,其在C中相除的结果才会具有小数。
此外,如double a=5/4;,其数学计算的结果是1.25,但是在C中输出的结果是1,即使是在语句中初始化变量a为浮点数。
这是因为初始化的变量是a,而不是算子5或4,这两个数的类型依旧是整数型,其结果依旧遵循整数型变量相除的结果,只是其结果1被赋值给了一个浮点数变量a。
如果想对两个浮点数相除的结果取整,即只取其整数部分,可以像这样做:
利用int可以取整。