使用scanf語句時,double的輸入格式符號是“%lf”,不能使用“%f”;使用printf語句時,可以使用“%f”,printf中沒有定義%lf,但是很多系統會接受。因此建議使用double類型時,用「%lf」輸入避免出錯。
本教學操作環境:windows7系統、C 17版、Dell G3電腦。
(1)printf的%f說明符既可以輸出float型又可以輸出double型。
根據「預設參數提升」規則(在printf這樣的函數的可變參數清單中,無論作用域內有沒有原型,都適用此規則)float型會被提升為double型。因此printf()只會看到雙精度數。
(2)scanf對於float型別必須用%f,double必須用%lf,對於scanf,情況就完全不同了,它接受指針,這裡沒有類似的型別提升。
(透過指標)儲存到float和向double儲存大不一樣,因此,scanf區別%f和%lf。
(3)事實上,printf中沒有定義%lf,但是很多系統可能會接受它。要確保可移植性,就要堅持使用%f。
建議大家使用double類型時,用%lf輸入,%f輸出避免出錯。
推薦教學:《C#》
以上是double的輸入格式符號是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!