C语言怎么对浮点型的数求余?
比如floata=3.14,b=3;我知道求余数一定要两个数都是整型的,,我有一点不懂:如果我用整形定义两个变量,如:inta=3.14,b=3,我赋给整形a的值是一个小...
比如 float a=3.14 ,b=3;我知道求余数一定要两个数都是整型的,,我有一点不懂:如果我用整形定义两个变量,如:int a=3.14 ,b=3,我赋给整形a的值是一个小数,这样编译时候不会提示出错,那么我在用 a%b;得到的结果会怎样呢?会是0.14吗?
展开
6个回答
展开全部
这样:
float a=3.14 ,b=3;
int c;
a*=100;
b*=100;
c=(int)a%(int)b;
a=(float)c/100;
%只能用于整形,不能用于浮点,如果浮点定义,必然报错,结果应该是0,不可能是0.14,int=3.14系统默认为3 3%3=0,想得到0.14可以借助系统函数。
扩展资料:
注意事项
% 只用于整型的计算,后一个数不能是0,参与运算的数据可正可负。
对于x%y ,计算之后结果的正负与 x 的符号相同,如果前者是较小的数,后者是较大的数,那么,结果直接为较小的数。例如:
10%3=1
3%10=3
10%-3=1
-3%10=-3
-10%-3=-1
-3%-10=-3
3%13=3
0%3=0
0%-3=0
3%0 (×)Error!
-3%0 (×)Error!
10.0%3.0 (×)Error! // 浮点型不能进行模运算
展开全部
在C语言中,浮点数是不能进行求余操作的。
因为C语言规定,求余运算符( % )的左右操作数必须为int类型。
浮点类型的数可以表示小数,所以浮点数相除后能用小数表示,不存在余数的问题,所以也就不能进行求余运算。
如:
int a=3, b=2, f1;
float c=3, d=2, f2;
f1 = a%b; // 合法
f2 = c%d; // 不合法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,%只能用于整形,不能用于浮点,如果浮点定义,必然报错
2,结果应该是0,不可能是0.14,int=3.14系统默认为3 3%3=0
3,若想得到0.14这样来算,也可以借助系统函数;
float a=3.14 ,b=3;
int c;
a*=100;
b*=100;
c=(int)a%(int)b;
a=(float)c/100;
2,结果应该是0,不可能是0.14,int=3.14系统默认为3 3%3=0
3,若想得到0.14这样来算,也可以借助系统函数;
float a=3.14 ,b=3;
int c;
a*=100;
b*=100;
c=(int)a%(int)b;
a=(float)c/100;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a=3.14 ,b=3可以的
a相当于把3.14强制转化为整数3赋值给a
整数和整数取余3%3=0
如果你要得到3.14%3=0.14的效果math.h有个函数叫fmod
a相当于把3.14强制转化为整数3赋值给a
整数和整数取余3%3=0
如果你要得到3.14%3=0.14的效果math.h有个函数叫fmod
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>main(){ float a=3.14,b=3; printf("%d\n",3 % 3); a*= 100; b*= 100; printf("%f",(float)(((int)(a) % (int)(b)) / 100.0));}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询