| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 259 人关注过本帖
标题:C的比较菜的问题。。
收藏  订阅  推荐  打印 
suwenyi
Rank: 1
等级:新手上路
帖子:12
积分:220
注册:2007-9-3

这个错误是由于电脑对单精度数据的处理造成的,建议用double
2007-10-1 18:13
好笨的虫子
Rank: 1
等级:新手上路
帖子:3
积分:130
注册:2007-10-1

是啊,不同操作系统上是不同的结果,而且也和内存分配有关,很多方面的,数位太长了,在堆栈中会被截位.所以要考虚好所使用的数据,注意这些细节问题
2007-10-1 19:05
liangchongch
Rank: 1
等级:新手上路
帖子:24
积分:344
注册:2007-9-20

浮点数的精度问题 最后一句改成
printf("%.2f",min);

NWE
2007-10-1 19:54
beyondjoe
Rank: 1
等级:新手上路
帖子:20
积分:312
注册:2007-7-5

受教了~~
2007-10-1 20:04
man420323
Rank: 1
等级:新手上路
帖子:23
积分:330
注册:2007-10-1

是精度问题吗?输入22.220000 33.330000 44.440000 输出的还是22.219999,这真让人郁闷


have nothing,but c and asp...
2007-10-2 00:00
furbywu
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2007-10-2

应该是22.220000吧
2007-10-2 01:02
ayoyo
Rank: 1
等级:新手上路
帖子:12
积分:220
注册:2007-10-2

#include <iostream.h>
void main()
{
float a[3],min;
int i;
for(i=0;i<=2;i++)
cin >> a[i];
cout << endl;
min=a[0]<a[1]?a[0]:a[1];
min=min<a[2]?min:a[2];
cout << min << endl;
}
用C++的标准输入输出就不会有这种问题;
不过也存在一点:当你输入22.220000,22.33333,22.4444时,
系统会自动给你抹掉22.2200000后面的0,输出结果为22.22;
也是精度问题,如果不用C的标准输出,怎解??
2007-10-2 01:44
lflwill
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-9-30

2007-10-2 09:07
心跳的感觉
Rank: 1
等级:新手上路
帖子:30
积分:400
注册:2007-10-1

以下是引用justing912在2007-10-1 11:05:43的发言:
因为你定义数组是用的float类型,所以输出的就浮点型的,小数精确到6位.

同意..


欢迎来到我的小站笨猪QQ:http://www.benzhuqq.cn
2007-10-2 13:08
yiyue_zf
Rank: 1
等级:新手上路
帖子:6
积分:160
注册:2007-10-2

支持2楼

2007-10-2 15:48
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.056698 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved