社区
C语言
帖子详情
c 语言 求余数的问题
suoduan
2003-09-04 08:44:49
iTemp= (int)(d % 10);
////itmep 是int型,d 是double型的,用的vc6.0出现以下错误。
E:\TEST\Ti\Ti.cpp(12) : error C2296: '%' : illegal, left operand has type 'double'
是怎么回事
...全文
485
11
打赏
收藏
c 语言 求余数的问题
iTemp= (int)(d % 10); ////itmep 是int型,d 是double型的,用的vc6.0出现以下错误。 E:\TEST\Ti\Ti.cpp(12) : error C2296: '%' : illegal, left operand has type 'double' 是怎么回事
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tonybaobao
2003-09-05
打赏
举报
回复
% 运算符两边要求是int型变量,你必须转换。否则报错。
bigbigbigsoft
2003-09-05
打赏
举报
回复
我以前做一个计算器遇到过这种问题,实际double型的数可能会超过最大的整数。我觉得正确的算法应该是:
double temp = d/10.0
然后舍弃temp的小数尾数(当时是我们自己写的函数,按位解析double型,去掉尾数)
然后再: temp = d - temp * 10
int result = (int)temp
zhuixe
2003-09-05
打赏
举报
回复
double t=d;
while(t>0xffffffff)
t/=10;
iTemp=int(t)%10;
keiven
2003-09-04
打赏
举报
回复
把d转换成整型的再取余就可以啦!
晨星
2003-09-04
打赏
举报
回复
超出整数范围就没法进行“%”运算了,这没办法。
idontlikenickname
2003-09-04
打赏
举报
回复
987654321完全可以转换成DWORD型的整数~
2^32要比这个大得多~
就算是比这个还大的你还可以用__int64类型的数~~
suoduan
2003-09-04
打赏
举报
回复
那我要把一个d=987654321这么大的一个double型的数转换成字符串"987654321" 不那样取余还有别的办法吗?d可不是一个常数。
Tinybaby
2003-09-04
打赏
举报
回复
首先运算的是d%10,必须保证d是int型的,所以先有强制转换d
但(int)进行强制转换就等于告诉系统,忽略这里的类型检查,因此会造成大类型到小类型转换中的数据丢失
所以就要保证d的范围
求余返回值为int型了,因此就没必要进行类型转换了
suoduan
2003-09-04
打赏
举报
回复
可是我的值超出整型的范围了,d=123456789这可怎么办。
njuhuangmy
2003-09-04
打赏
举报
回复
楼上的 正解
你的 括号 里面 就是 d % 10
左边 是 double 型, 这与 % 算符 两边 要求 整型 不符 啊
呵呵, 提示 都 那么 明显 了
liao2001
2003-09-04
打赏
举报
回复
iTemp=((int)d)%10;
C
语言
求余
数
问题
C
语言
里对于有一些符号是不能直接输出的,因为被C
语言
占用了。所以有一些符号是需要特殊的方式才能输出的。比如你说的%号,%号在C
语言
里是
求余
数
的符号,如果需要输出%的话,你需要连续写2个%才能输出。如:printf("x%%y=%f\n",e);
关于
求余
运算(余
数
为正)
2020学习笔记: 关于
求余
运算 在C
语言
中,如果被除
数
为负值,则对一个正
数
求余
的时候,求出的余
数
也是一个负
数
。在某些场合下,我们需要求出它的正余
数
,例如:在C
语言
中有(-11)%5=-1,但是如果我们希望得到的余
数
不是-1,而是4,那么如何计算呢? 对于整型
数
a,b来说,取模运算或者
求余
运算的方法都是: 1.求 整
数
商: c = a/b; 2.计算模或者余
数
: r = a - c*b. 求模运算和
求余
运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值时,向负无穷方
求正/负余
数
5.求正/负余
数
在C
语言
中,如果被除
数
为负值,则对一个正
数
求余
的时候,求出的余
数
也是一个负
数
。在某些场合下,我们需要求出它的正余
数
,例如:在C
语言
中有(-11)%5=-1,但是有时我们希望得到的余
数
不是-1,而是4。请编写程序计算(-11)%5的负余
数
和正余
数
。 #include <stdio.h> #include <math.h> int main() { int a,b; int mod1,mod2; scanf("%d%d",&
C
语言
求正/负余
数
在C
语言
中,如果被除
数
为负值,则对一个正
数
求余
的时候,求出的余
数
也是一个负
数
。在某些场合下,我们需要求出它的正余
数
,例如:在C
语言
中有(-11)%5=-1,但是有时我们希望得到的余
数
不是-1,而是4。请编写程序计算(-11)%5的负余
数
和正余
数
。 #include<stdio.h> int main() { printf("negative: %d\n",-11%5); printf("positive: %d\n",-11%5+5); return 0; } 小剧场:
大大大大
数
怎么
求余
?C
语言
问题
:一个特别大的
数
除以23
求余
数
用C
语言
应该怎么算啊?比如23232323232323232323232323232323232323232323232323232323233除以23...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章