标题:浮点数进制问题,请大家教一下我这个刚学c的啊!
只看楼主
guikun
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-12-1
结帖率:50%
已结贴  问题点数:5 回复次数:3 
浮点数进制问题,请大家教一下我这个刚学c的啊!
我问了我们的讲师她也没给我讲清楚
double a=12.195;
printf("%lf",a);
的到的结果是12.20
float a=12.195;
printf("%f",a);得到的结果是12.19
这里就有个问题单精度和双精度就取值范围大小不同,为什么单精度的不会产生进位,而双精度的会产生进位,请知道的帮助一下啊!
搜索更多相关主题的帖子: double 讲师 
2012-12-04 23:31
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
得分:5 
printf("%lf",a);
printf("%f",a);

printf输出的结果是由占位符决定的。

d 有符号10进制整数   i 有符号10进制整数   o 无符号8进制整数   u 无符号10进制整数   x 无符号的16进制数字,并以小写abcdef表示   X 无符号的16进制数字,并以大写ABCDEF表示   f 浮点数   E/e 用科学表示格式的浮点数   g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数   c 单个字符   s 字符串

double占8个字节
float占4个字节

浮点数在内存中用表示符合IEEE754标准。如果用float则取前4个字节的内容,如果是double则取前8个字节。在转换时会自动的四舍五入。




成功贵在坚持
2012-12-05 06:15
guikun
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-12-1
得分:0 
回复 2楼 mayuebo
我还不很清楚,能再讲的清楚些吗?谢谢!(我有个疑问,是不是在所有情况下,对float进行保留小数都不会进位,而对double不会)
2012-12-05 22:37
何事惊慌
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:220
专家分:499
注 册:2008-7-2
得分:0 
a.tostring(“F2")系统有提供自动的方法

QQ:860234001
编程交流群:236949758
2012-12-09 16:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389615-1-1.html




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

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