c 语言中除号仅用于整数间吗?
根据被除数和除数的类型的不同,c语言中的除法有两种运算:
1、
如果被除数和除数都是整型(包括有符号和无符号,也包括char类型),则进行的是整除,即只留下结果的整数部分,直接舍弃小数部分。
如:
int a=10;
char b=4;
float r=a/b;
则r的结果是2,当作为浮点数输出(用%f格式输出时),输出的结果是2.000000,因为默认会保留6位小数。
2、
如果被除数或除数之一是浮点型(包括一般的小数和科学计数法表示的小数),则进行的是浮点数除法,结果是浮点数。但因为计算机只能表示有限精度,所以结果跟纯数学上算出的可能有所不同。
如:
10.0/4等于2.5,能精确表示。但15.0/7就只能精确到有限位数(可以指定要精确到的小数位数,但一般不能超过15位)。
下面是一个例子:
#include <stdio.h>
int main()
{
int a=10;
char b=4;
float r=a/b;
printf("%d/%d=%f\n",
a,b,r);
printf("10.0/4=%f\n",
10.0/4);
printf("15.0/7=%.15lf\n",
15.0/7);
return 0;
}