读书人

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

发布时间: 2012-09-08 10:48:07 作者: rapoo

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

读书人网 >C语言

热点推荐