搜索
查看: 1102|回复: 11
打印 上一主题 下一主题

10.1*100为什么是1010.000061?

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-27 11:04:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
a=10.1;
b=100;
c=a*b;

printf("%f",c);       
        system("pause");
        return 0;
}


输出结果为什么是1010.0061,不是1010,请问这是为什么?



沙发
发表于 2015-8-27 12:07:29 | 只看该作者
因为你的c是float,要是1010的话,请用int..
板凳
发表于 2015-8-27 13:15:16 | 只看该作者
float的精度问题,实测double没问题
地板
发表于 2015-8-27 13:15:44 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
double a,b,c;
a=10.1;
b=100;
c=a*b;

printf("%f",c);        
        system("pause");
        return 0;
}[/mw_shl_code]
5#
 楼主| 发表于 2015-8-27 14:11:25 | 只看该作者
谢谢各位解答,问题解决了,原来是定义变量出了问题,应该分别定义。
6#
发表于 2015-8-30 12:02:14 | 只看该作者
lth60825 发表于 2015-8-27 14:11
谢谢各位解答,问题解决了,原来是定义变量出了问题,应该分别定义。

什么叫分别定义
7#
 楼主| 发表于 2015-8-31 14:53:10 | 只看该作者

分别对每一个变量进行定义。
8#
发表于 2015-8-31 15:43:42 | 只看该作者
lth60825 发表于 2015-8-31 14:53
分别对每一个变量进行定义。

没有区别。
9#
发表于 2015-9-3 12:39:35 | 只看该作者
机器人提醒您:你拨打的电话已关机,留言请按1 退出请挂机
10#
发表于 2015-11-14 20:07:20 | 只看该作者
本帖最后由 HRtheAssasin 于 2015-11-14 20:09 编辑

最简单的方法(我也是刚接触啊哈c的):
你把printf("%f",c);改成printf("%d"c,);
11#
发表于 2016-8-18 21:34:09 | 只看该作者
2016-8-15 17:19:49
2016-8-15 17:19:50
2016-8-15 17:19:52
12#
发表于 2016-8-18 21:35:13 | 只看该作者
发错了,退不掉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表