C_and_CPP 板


LINE

※ 引述《TIME1987 (把握当下)》之铭言: : 遇到的问题:float与double在位数上的不同 : #include <stdio.h> : int main() : { : float num1=123.456789012345; : double num2=123.456789012345; : printf("num1=%16.12f\n",num1); : printf("num2=%16.12f",num2); : return 0; : } : 程式跑出来的结果:num1=123.456787109375 : num2=123.456789012345 : 开发平台:codeblock : float只能容纳4个位元组 所以是8个位数的精度 : 但为何num1=123.456787109375从第8位之後的数字会是这麽不规律呢? : 书上说是记忆体的残值 但这个残值是怎麽出来的呢? : 谢谢~ 其实不是残值 是被切掉的二进位所代表的误差值 例如 0.123 好了 它的二进位是 0.00011111011111001110110110010001011... \_____ 这里一共24位 ____/ 如果我只要二进位小数有效位数24位 (和 float 一样; 为何不是23位是标准表示法有藏一个1没有纪录) 那麽就会变成 0.0001111101111100111011011001 精确转回十进位是 0.1229999996721744537353515625 注意到二进位的24位约等於十进位的 24log2=7.22 位 所以切在有效位数是 0.1230000 的确达到了位数 後面那些乱七八糟的数字就是在那之後被切掉的数字所代表的误差值而已 也就是说 十进位七位以後的数字都不准 能相信的就是七位精确而已 -- 'Oh, Harry, dont't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.28.92 ※ 编辑: LPH66 来自: 140.112.28.92 (11/12 15:34)
1F:推 TIME1987:谢谢你~ 11/12 15:34
2F:推 VictorTom:小弟我一直以为是六位精确, log2 * mentisa bit数Orz 11/12 16:58
3F:推 lairrol:7位没错!!这个我试过....当要比较两个浮点数发现的=.=" 11/12 19:19
4F:→ lairrol:不过第七位有时候也会有误差就是了 xx.xxx1 和 xx.xxx0 囧 11/12 19:20
5F:→ LoveCheer:高手 11/12 20:01
6F:推 VictorTom:3F~~第七位有时会有误差, 那就是六位精确而已啊?_? 11/12 20:29
7F:→ LPH66:咦等等我发现我多算一位 float 的 mantissa 是 23 bit 11/13 02:12
8F:→ LPH66:不过这样改也是7.2...应该还不会少到剩六位 11/13 02:13
9F:→ LPH66:三楼可能是你有一位整数的关系... 11/13 02:13
※ 编辑: LPH66 来自: 140.112.28.92 (11/13 02:15)
10F:→ LPH66:7位是有效位数喔 不是小数位数..所以有1位整数时小数就剩6位 11/13 02:16
11F:推 lairrol:我自己try的例子是 1.xxxxxx1 0.xxxxxx0 会这样... 11/13 03:23
12F:→ lairrol:嗯~LPH说的应该没错~我试完是整数位1位+小数位6位精确 11/13 03:23
13F:推 VictorTom:对喔~~我忘记了整数的那一位....Orz 11/13 08:34
14F:推 photon3108:23bits 会有正规化之後,变成可表达24bits的关系吗?, 11/13 12:26
15F:推 photon3108:gcc, vc 都定义 FLT_DIG <cfloat> 是 6,怎麽少1个 11/13 12:32







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP