首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于数据类型的一个有关问题

2012-09-08 
关于数据类型的一个问题4int i,m,n56scanf(%f %f,&m,&n)78im%n910printf(%f\n,i)输入:8 4结果为

关于数据类型的一个问题
4 int i,m,n;
  5
  6 scanf("%f %f",&m,&n);
  7
  8 i=m%n;
  9
  10 printf("%f\n",i);

输入:8 4
结果为什么是:-0.013233
 ??????



[解决办法]
浮点类型是存在误差的,在每回使用的时候要设置阈值(误差精度)来判断。详见百度浮点类型。
[解决办法]
你定义 m n 为int类型

还用浮点输入????scanf("%f,%f",&m,&n);
[解决办法]
浮点数没有求余操作
5除以2等于2余数1,5.1除以2.0等于2.55,哪来余数?

写代码之前先确定自己知道自己写的是啥
[解决办法]
printf("%f\n",i);
你要知道浮点数存储的方式和int型在存储的时候差距是很大的。。。
[解决办法]
你是怎么输进去的,一个8,一个4
都是int到float的,输入的时候是根据地址的。如果是在程序中,可以强转
这样输入,内存都不够吧。
如果是
float i;
scanf("%d",i);
这样从int 到float 倒是可以输

明白的说下,指导指导。
[解决办法]
fmod
Calculates the floating-point remainder.

double fmod( double x, double y );

Function Required Header
fmod <math.h> 

[解决办法]
很简单,绝对值小于多少的时候都是0,8%4 = 0,所以输出是正常的!

热点排行