使用浮點值我不知道爲什麼我的C編譯器或系統意外行爲。沒有讓它變得如此混亂。這裏是一個簡單的程序,用於輸入浮點值並打印。浮點值輸入錯誤
#include <stdio.h>
int main()
{
float num;
printf("Enter float value ");
scanf("%f", &num);
printf("Value = %f", num);
return 0;
}
在多次運行相同的代碼給我不同和怪異的輸出。以下是一些示例運行。
樣品試驗#1 正確的輸出
輸入浮點值12.0312
值= 12.031200
樣品試驗#2 不正確的和意想不到的輸出
輸入浮點值324.123
值= 324.122986
樣品試驗#3 錯誤和意外的輸出
輸入浮點值945.1234
值= 945.123413
我不知道爲什麼系統在最後添加一些垃圾值。我在code :: blocks中使用GNU GCC編譯器。
系統不是」添加垃圾數值「。浮點表示本質上不精確(它們不代表實數,它們表示有理數的子集)。 –
http://floating-point-gui.de/ – pm100
感謝大家明確表示。併爲鏈接。這是我發現我的問題的正確答案http://stackoverflow.com/questions/588004/is-floating-point-math-broken。如果其他人有這個問題,這個鏈接可以幫助。 –