1樓:
你定義的12.9f 格式超出了float變數的數值範圍小數位預設為6位小數而你卻設定為9
你如果用double定義a變數
scanf("%lf",&a);
printf("%lf",a);
就能正確輸出啦!
2樓:茄子閒人
我確定是超過float的長度範圍了
你應當定義雙精度的「double」
就如int 和long int的區別一樣
main()
float定義的數只能精確到小數點後六位,如果超過電腦就會隨機賦值……
就是這樣……
3樓:匿名使用者
這是正常的,浮點數儲存本來就是不絕對精確的。
這樣引出另外一個問題,就是浮點數的(是否相等)比較,不能像整數那樣。
比如說,先輸入 a = 0.1 再輸入 b = 0.1 比較 a 和 b 是否想等,應該這樣:
fabs(a - b) < 0.000001 這裡是比較兩數之差的絕對值,如果前面的式子成立,那麼 a 和 b 想等。
上面的 0.000001 不是絕對要用 0.000001 ,意思是,只要 是一個很小的數就行,一般就是取 小數點後 4 到 6 位 就行。
即 也可以是 0.0001、0.00001 等等都行,但是不能太小。
各位C語言高手請問
怎麼說那,你現在用的系統是c於c 的集合版本,c的程序導向是一個比較複雜而且很有意思的東西,只是更多的是考慮的問題方向不同,c也可以進行顯示程式設計,只是邏輯結果比較複雜呢,因為一個窗體的所得屬性,方法都要用函式之間的呼叫來實現,而且其中還要有io介面上的問題,記憶體的分配 堆和堆載如何分配 等等很...
c語言程式設計高手請進謝謝,C語言程式設計,高手請進,謝謝
根據樓上提供的進行優化,已經除錯成功的 去掉了註釋,考慮到各個機器的輸入法問題,所有的printf 內容都換成英文 include include include include define null 0 define len sizeof struct student define file d...
C語言高手進!!C語言,求指點!!
1是指這個變數只佔一位,看一下有關位段相關的地方。看一下這篇文章 位段以位為單位定義結構體 或共用體 中成員所佔儲存空間的長度。含有位段的結構體型別稱為位段結構。位段結構也是一種結構體型別,只不過其中含有以位為單位定義儲存長度的整數型別位段成員。採用位段結構既節省儲存空間,又可方便操作。位段結構中位...