24小时热门版块排行榜    

查看: 1280  |  回复: 3

dp.xiong

新虫 (初入文坛)

[交流] 一个奇怪的double型数据输出问题 已有3人参与

#include
void main(){
        double a=8.86;
        printf("%.16g",a);
}

此时输出为8.859999999999999;小数点后边为什么还没有16位呢?
若将printf("%.16g",a);改为printf("%.15g",a);则准确输出8.86;
请问这是为什么?急求高手解答。

[ Last edited by dp.xiong on 2011-5-26 at 23:27 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)


dubo(金币+1): 感谢应助 2011-05-27 17:39:44
本帖仅楼主可见
2楼2011-05-26 23:56:23
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

ioadong

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 感谢应助 2011-05-27 17:39:53
The double type contains 64 bits: 1 for sign, 11 for the exponent, and 52 for the mantissa. Its range is +/–1.7E308 with at least 15 digits of precision.
以科学的理性代替天然的非理性。
3楼2011-05-27 00:12:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty(金币+1): 谢谢回帖 2011-05-27 08:56:27
引用回帖:
Originally posted by dp.xiong at 2011-05-26 23:25:52:
#include <stdio.h>
void main(){
        double a=8.86;
        printf("%.16g",a);
}

此时输出为8.859999999999999;小数点后边为什么还没有16位呢?
若将printf("%.16g",a);改为printf(& ...

其实使用.15并没有做到在内存中准确存储,显示正确只是因为四舍五入

楼主可以到wiki上查一下double的格式

小数的二进制到十进制的相互转换,存在着不可调和的矛盾:有限位二进制不一定能精确表示有限位的十进制小数

所以简单地说,0.1这个数,double也不能精确保存
4楼2011-05-27 08:53:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dp.xiong 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 澳大利亚 Murdoch University 全奖博士招生(3个名额)地质化工冶金领域 +23 AI8RaGaPaSCR 2026-08-07 24/1200 2026-08-13 19:45 by gmZWQHF3zgnx
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 28/1400 2026-08-13 17:51 by 医学老男孩
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +4 majunge000 2026-08-11 6/300 2026-08-13 16:50 by 四季常青藤
[基金申请] 关于Filecode分析方法 +9 majunge000 2026-08-10 11/550 2026-08-13 10:40 by ZH远山
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +9 家与远方 2026-08-10 14/700 2026-08-13 09:41 by 臭臭不臭01
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +8 Tide man 2026-08-10 9/450 2026-08-11 20:39 by beefly
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[硕博家园] 读博的好处 +3 lnee 2026-08-11 3/150 2026-08-11 18:10 by 希望我好好的
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
信息提示
请填处理意见