#include <stdio.h>
int main() {
float k;
scanf("%f", &k);
printf("%f", k);
}
在這個簡單的程序中,當我輸入一個最多包含8位數字的數字時,它會正確顯示。爲什麼scanf爲大浮點數輸入錯誤的輸入?
但是,如果我超過了8位,即對於輸入123456789
輸出是123456792
。
爲什麼會發生這種情況?那麼有趣的是,如果我在123456789
和123456796
之間輸入任何數字,那麼它總是會顯示123456792
。
是否與浮點數的8位小數精度有關?
https://stackoverflow.com/questions/12560291/set-back-default-precision-c –
@HariomSingh鏈接的問題是如何相關的?甚至沒有相同的語言。 – Toby
@Toby問題最初是用[tag:C++]進行雙重標記的,將其刪除,因爲代碼和文本都沒有引用C++。 –