[問題] DEV C++的計算問題...
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float ch=240;
float ch1;
ch1=ch/7;
printf("%f\n",ch1);
system("pause");
return 0;
}
這是一段很簡單的小程式,計算240/7
得到答案是34.285713
BUT,不管我用其他什麼工具算出來 240/7=34.28571428571429
也就是說240/7=34.285714~34.285715
怎麼程式會秀出713哩?
有請各位前輩告訴我一下問題所在....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.140.207
推
02/09 22:59, , 1F
02/09 22:59, 1F
→
02/09 22:59, , 2F
02/09 22:59, 2F
→
02/09 23:00, , 3F
02/09 23:00, 3F
我知道改成double後可以正確算出來,
可是不能理解最後一位為何會算出3,
不知是如何演算出來的?
會是以16進位計算後轉換為10進位所造成的誤差嗎?
這是我想到的可能性,不知道是不是有其他可能?
※ 編輯: storypp 來自: 114.33.140.207 (02/09 23:06)
→
02/09 23:06, , 4F
02/09 23:06, 4F
→
02/09 23:07, , 5F
02/09 23:07, 5F
推
02/10 00:49, , 6F
02/10 00:49, 6F
推
02/11 00:06, , 7F
02/11 00:06, 7F
→
02/11 00:08, , 8F
02/11 00:08, 8F