13.7 有人告訴我在 printf 中使用 %lf 不正確。那麼, 如果 scanf()  需要 %lf, 怎麼可以用在 printf() 中用 %f 輸出雙精度數呢?

printf 的 %f 標識符的確既可以輸出浮點數又可以輸出雙精度數。根據  ``缺省參數擴展" 規則, 不論範圍內有沒有原形都會在在類似 printf 的可 變長度參數列表中採用, 浮點型的變量或擴展為雙精度型, 因此 printf()  只會看到雙精度數。printf() 的確接受 %Lf, 用於輸出長雙精度數。 參見問題 12.11 和 15.2

參考資料: [K&R1, Sec. 7.3 pp. 145-47, Sec. 7.4 pp. 147-50]; [K&R2, Sec. 7.2 pp. 153-44, Sec. 7.4 pp. 157-59]; [ISO, Sec. 7.9.6.1, Sec. 7.9.6.2]; [H&S, Sec. 15.8 pp. 357-64, Sec. 15.11 pp. 366-78]; [CT&P, Sec. A.1 pp. 121-33]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)