24小时热门版块排行榜    

查看: 1091  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程321分求调剂 +6 大米饭! 2026-03-15 6/300 2026-03-16 07:58 by wang_dand
[考研] 326求调剂 +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[考研] 化学调剂0703 +7 啊我我的 2026-03-11 7/350 2026-03-15 23:03 by 凌千颂111
[考研] 0703化学调剂,求各位老师收留 +7 秋有木北 2026-03-14 7/350 2026-03-15 17:30 by 小物理化学
[基金申请] 国自科面上基金字体 +4 iwuli 2026-03-12 5/250 2026-03-15 17:07 by 风云无泪
[考研] 267一志愿南京工业大学0817化工求调剂 +5 SUICHILD 2026-03-12 5/250 2026-03-14 14:53 by jean5056
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 293求调剂 +5 上班不着吉 2026-03-09 5/250 2026-03-14 02:37 by JourneyLucky
[考研] 0703求调剂 +7 jtyq001 2026-03-10 7/350 2026-03-14 01:06 by JourneyLucky
[考研] 招收0805(材料)调剂 +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%、
[考研] 311求调剂 +5 牛乳糖的卡卡 2026-03-10 5/250 2026-03-14 00:05 by JourneyLucky
[考研] 279求调剂 +3 抓着星星的女孩 2026-03-10 3/150 2026-03-13 23:47 by userper
[考研] 材料与化工(0856)304求B区调剂 +6 邱gl 2026-03-12 7/350 2026-03-13 23:24 by 邱gl
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 一志愿西南交大,材料专硕317求调剂 +5 lx8568 2026-03-11 5/250 2026-03-13 21:43 by peike
[考研] 0703化学求调剂 +7 绿豆芹菜汤 2026-03-12 7/350 2026-03-13 17:25 by njzyff
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
[考研] 285求调剂 +4 ytter 2026-03-12 4/200 2026-03-13 14:48 by jxchenghu
[考研] 0703一志愿211 285分求调剂 +4 ly3471z 2026-03-13 4/200 2026-03-13 13:00 by JourneyLucky
信息提示
请填处理意见