24小时热门版块排行榜    

查看: 1284  |  回复: 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个名额)地质化工冶金领域 +59 AI8RaGaPaSCR 2026-08-07 62/3100 2026-08-14 05:15 by 7bSeoHKaatQG
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +9 Tide man 2026-08-10 10/500 2026-08-13 20:33 by 温淼淼淼
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +4 majunge000 2026-08-11 6/300 2026-08-13 16:50 by 四季常青藤
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +22 Lanmanbaby 2026-08-09 36/1800 2026-08-12 22:50 by sdfapple719
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[论文投稿] 职称评审,求友友推荐见刊最快的期刊 +4 工厂打螺丝 2026-08-08 4/200 2026-08-12 09:18 by hansi2025
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +7 布布和一二 2026-08-10 10/500 2026-08-12 09:12 by 布布和一二
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
信息提示
请填处理意见