C语言浮点型数据能不能取余?

inta=5,b;b=a%3;此时的b为2。然后我想问一下,如果floata=5.2;那a%3为多少?还有,一个浮点型的数据如何才能得到其各位,十位,百位上的值?先把它强... int a=5,b;
b=a%3;
此时的b为2。然后我想问一下,如果 float a=5.2; 那 a%3为多少?

还有,一个浮点型的数据如何才能得到其各位,十位,百位上的值?先把它强制转换成int型,然后取余 % ,这样行不行?
展开
 我来答
幻翼高达Zero
2019-05-24 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:8.2万
展开全部

C语言浮点型数据不能取余。

一个浮点型的数据,转化成整形数据后可以通过除法与取余来获得其个位、十位、百位。先把它强制转换成int型,然后取余 %是可行的。

例如浮点型数据521.63,转化成整形后是521,对10取余可以获取个位数1,对100取余再除以10取整可以获得十位数2,除以100取整可以获得百位数5。

扩展资料:

取余运算的运算律:

1、(a + b) % p = (a % p + b % p) % p

2、(a - b) % p = (a % p - b % p) % p

3、(a * b) % p = (a % p * b % p) % p

4、a ^ b % p = ((a % p)^b) % p

5、((a+b) % p + c) % p = (a + (b+c) % p) % p (5)

6、((a*b) % p * c)% p = (a * (b*c) % p) % p (6)

7、(a + b) % p = (b+a) % p

8、(a * b) % p = (b * a) % p

9、(a+b) % p = ( a % p + b % p ) % p

10、((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p 

参考资料来源:百度百科-浮点型数据

参考资料来源:百度百科-取模运算

White_MouseYBZ
推荐于2017-09-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6649万
展开全部

可以,但不能用操作符%,而要用库函数fmodf、fmod或fmodl。因为%是整型取余操作符,要求两边都是整型数才行,结果也是整型;fmodf用于float型变量操作,fmod用于double型变量操作,fmodl用于long double型变量操作。以下以fmod举例:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "math.h"
int main(void){
    double f=3.3,q=2.2;
    printf("%f\n",fmod(f,q));
    return 0;
}

运行结果是1.100000。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友318b2a2
推荐于2017-09-12 · 超过14用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:34.4万
展开全部
a%3非法,取余要求两个都是整型
int转换后是可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fishmin2005
2011-08-31 · TA获得超过529个赞
知道小有建树答主
回答量:498
采纳率:0%
帮助的人:429万
展开全部
可以先强制转化后取余。不能直接取余。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jingjing2517
2011-08-31 · TA获得超过167个赞
知道答主
回答量:253
采纳率:0%
帮助的人:153万
展开全部
浮点型数据不可取余数

你的思路是对的,可以实现.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式