在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 centimeter = 35;
int foot = centimeter / (100 * 0.3048);
利用int
可以取整。