[問題] 浮點數的殘值
遇到的問題: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位之後的數字會是這麼不規律呢?
書上說是記憶體的殘值 但這個殘值是怎麼出來的呢?
謝謝~
--
這個問題感覺很沒水準 但我真的想好久都不知道原因...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.128.107
※ 編輯: TIME1987 來自: 61.227.128.107 (11/12 15:24)
→
11/12 15:43, , 1F
11/12 15:43, 1F
討論串 (同標題文章)