CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

c 语言 求余数的问题

楼主suoduan(suoduan)2003-09-04 20:44:49 在 C/C++ / 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'  
   
  是怎么回事 问题点数:30、回复次数:11Top

1 楼liao2001(知之为知之,不知为不知。。。)回复于 2003-09-04 20:49:31 得分 3

iTemp=((int)d)%10;Top

2 楼njuhuangmy(茶)回复于 2003-09-04 21:01:12 得分 3

楼上的   正解  
   
  你的   括号   里面   就是   d   %   10  
   
  左边   是   double   型,     这与   %   算符   两边   要求   整型   不符   啊  
   
  呵呵,   提示   都   那么   明显   了Top

3 楼suoduan(suoduan)回复于 2003-09-04 21:44:48 得分 0

可是我的值超出整型的范围了,d=123456789这可怎么办。Top

4 楼Tinybaby(喝蚊子的牛奶)回复于 2003-09-04 22:08:59 得分 3

首先运算的是d%10,必须保证d是int型的,所以先有强制转换d  
  但(int)进行强制转换就等于告诉系统,忽略这里的类型检查,因此会造成大类型到小类型转换中的数据丢失  
  所以就要保证d的范围  
  求余返回值为int型了,因此就没必要进行类型转换了Top

5 楼suoduan(suoduan)回复于 2003-09-04 22:18:34 得分 0

那我要把一个d=987654321这么大的一个double型的数转换成字符串"987654321"   不那样取余还有别的办法吗?d可不是一个常数。Top

6 楼stukov2002(卡拉是头猪)回复于 2003-09-04 22:23:59 得分 5

 
   
  987654321完全可以转换成DWORD型的整数~  
  2^32要比这个大得多~  
  就算是比这个还大的你还可以用__int64类型的数~~  
   
  Top

7 楼steedhorse(晨星)回复于 2003-09-04 22:24:47 得分 3

超出整数范围就没法进行“%”运算了,这没办法。Top

8 楼keiven()回复于 2003-09-04 23:18:53 得分 3

把d转换成整型的再取余就可以啦!Top

9 楼zhuixe(竹子)回复于 2003-09-05 00:00:03 得分 5

double   t=d;  
  while(t>0xffffffff)  
      t/=10;  
  iTemp=int(t)%10;Top

10 楼bigbigbigsoft(bigbigbigsoft)回复于 2003-09-05 00:23:37 得分 3

我以前做一个计算器遇到过这种问题,实际double型的数可能会超过最大的整数。我觉得正确的算法应该是:  
  double   temp   =   d/10.0  
  然后舍弃temp的小数尾数(当时是我们自己写的函数,按位解析double型,去掉尾数)  
  然后再:   temp   =   d   -   temp   *   10  
  int   result   =   (int)temp  
   
  Top

11 楼tonybaobao(Tony宝宝)回复于 2003-09-05 00:31:18 得分 2

%   运算符两边要求是int型变量,你必须转换。否则报错。Top

相关问题

  • 请高手们指点!用C语言编程求2的1000次方除以1999后得余数。
  • c#中求余数的函数是什么?
  • 学C语言。。。
  • C语言书!
  • c语言问题:
  • 妙论C语言
  • c语言一疑
  • 关于C语言
  • c语言问题!!!!!!!!!
  • c语言问题

关键词

  • 转换
  • 整数
  • 类型
  • double
  • 范围
  • temp

得分解答快速导航

  • 帖主:suoduan
  • liao2001
  • njuhuangmy
  • Tinybaby
  • stukov2002
  • steedhorse
  • keiven
  • zhuixe
  • bigbigbigsoft
  • tonybaobao

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo