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

关于数据类型的一个问题
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,所以输出是正常的!