c语言区分1 1.0

来源:百度知道 编辑:UC知道 时间:2024/05/07 23:08:13
在c语言中
我如何区别1 和1.0 (一个给定的已知数)

if(x-(float)(int)x==0.0) 本来想用这个的 觉果发现不行
只是想知道我在用scanf("%d",&x)这个函数的时候
如果别人输入1.0 我该如何报错

scanf输入int是到第一个不是int的字符结束。
所以输入1.0,结果就是1,.0还在缓冲区保存!

1和1.0本来就没有区别!所以无法区别。

因为float型数据在内存中是按照特定结构存放的,既不是1,也不是1.0,所以输出的数是经过系统根据需要处理转化的结果。
也就是说1和1.0只是你的要求不同而造成的输出,而不是本身的区别。

如果都是常量,还可以用内存地址一样不一样来区分。但这也要看便一起又没有把它们优化到一起,很随即的结果。

所以区分它们是毫无意义的!