c語言printff的問題,c語言printf問題 為什麼printf不能用 lf輸出double型別,而要用 f呢?

2021-12-23 08:02:49 字數 1050 閱讀 1200

1樓:匿名使用者

「%f」為輸出單精度型別的值,它輸出的值有效數字是7位,也就是說,計算結果333333.333,只取前7位,即333333.3。

但float輸出又要求保留6位有效數字,所以在計算結果(333333.3)後會繼續輸出,而此時增加的5位小數的值是隨機的

2樓:匿名使用者

x=111111.111;y=222222.222;

儘管它們的和的真值為333333.333,但由於它們是float浮點數,只保留7位有效數字,即前面的7個3是有效的,而後面的則都是由一些無效數字組成,因此結果為333333.3***xx,這些x都是些隨機的無效數字。

3樓:

因為float精確8位,而double精確到16位。樓主的程式用double型別輸出就可以全部列印,還有不懂的就問我吧,望採納!c語言的問題都可以問我

4樓:破壁人5號

精度問題吧,有效數字太多了

你用double 型別 試試,萬用字元是%lf

5樓:黑乎乎

#include

void main()

用double型別

c語言printf問題:為什麼printf不能用%lf輸出double型別,而要用%f呢?

6樓:洛雨曦

可以用%lf

應該說double型別的資料用%lf

scanf當中若是對雙精度的變數賦值是必須是%後跟lf,而printf當中可以用%f也可以用%lf沒有限制

7樓:匿名使用者

看看這裡:

建議就是:scanf()對double用lf,printf()對double只用f。

具體上面的說明,英文的,仔細看看。不要聽別人亂講。

8樓:鈍鋒

c 中double型別的輸出符號是%lf。

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...

c語言的問題,C語言的問題

union是聯合體,其中的所有變數共用一片記憶體空間,該空間長度為union中最長的變數長度,即int陣列i 2 的長度8。union會牽涉到大小端問題,而題中給出的陣列的第0個元素在低位並不能說明機器為大端序還是小端序,因為陣列的生長方向永遠向上,和大小端以及堆疊的生長方向沒有關係。這意味著這道題...