| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:double的输出!。谢谢
只看楼主 加入收藏
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
结帖率:95.24%
收藏
已结贴  问题点数:6 回复次数:4 
double的输出!。谢谢
int a=1,b=3;
double c=a*100/b;
printf("%.3lf%%\n",c);printf("%.3lf%%\n",(double)a*100/b);

本来想表达一个意思的,但是输出结果却不同!“33.000%”和“33.333%”我不理解这种情况的出现。可不可以给些解答。谢谢!
搜索更多相关主题的帖子: double 
2013-06-09 10:35
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:2 
程序代码:
#include <stdio.h>
int main(void)
{
    int a=1,b=3;
    double c=a*100.0/b;//此处改为这个!!
    printf("%.3lf%%\n",c);printf("%.3lf%%\n",(double)a*100/b);
}

因为整型除整型,会把小数省略!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-09 10:55
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:4 
(double)a*100/b) 是先将 a 变成 double 类型,然后再计算整个表达式。根据C的标准,只要表达式中数据类型不同,就把所有的数据都先转化成高精度类型在运算。再将结果保存为接收变量的类型,以提高精度。

你第一个表达式,是想按整型计算(有整除现象),再将结果保存为 double 类型(实质上还是和整型的结果一样)。
后一个表达式是先将所有类型一律变成 double 类型,再计算,让后保存为 double 类型。

希望我说的有用……
2013-06-09 11:51
浮云之冰雪
Rank: 2
等 级:论坛游民
帖 子:74
专家分:89
注 册:2013-5-11
收藏
得分:0 
定义double类型,不可以写成整数,否则会默认为整型。

潇洒不可少!
2013-06-09 12:13
RobinWang
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:69
专家分:121
注 册:2013-5-31
收藏
得分:0 
回复 楼主 雪山的猫
c没有定义

将压抑的青春能量转化为改造中国的动力!
2013-06-09 18:50
快速回复:double的输出!。谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024101 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved