看板 C_and_CPP 關於我們 聯絡資訊
我想請問一下 以下是程式碼 #include<stdio.h> #include<stdlib.h> int main(void) { float num1=30000.1F; float num2=0.0004F; printf("%f\n",num1+num2); system("pause"); return 0; } 我在學校出現結果是30000.100009 但是在家用一樣的程式碼 出現的卻是30000.099609 請問是哪邊的問題呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.69.111.16 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443196637.A.D1F.html
longlongint: AMD vs Intel (誤09/26 00:34
longlongint: 關鍵字 IEEE 75409/26 00:35
longlongint: 然後 float 精準度約六至七位09/26 00:41
那個我有看過了 但我還是不清楚為什麼會造成兩台電腦不同結果呢 ※ 編輯: gamania31610 (49.216.3.8), 09/26/2015 01:08:15
yvb: 32-bit/64-bit 或 optimization options 都可能影響結果. 09/26 04:07
azureblaze: 因為大家都不鳥IEEE754 09/26 06:04
azureblaze: -ffloat-store 會讓他乖一點 09/26 06:09
TobyH4cker: 我只知道舊版有問題 09/29 22:49
KJFC: 計概教了754之後就回不去了 11/11 09:13