printf("%lf\n",d);為什么要%后面要加l,而 不直接加f呢?
2 回答
已采納

hhh112123123
TA貢獻(xiàn)158條經(jīng)驗(yàn) 獲得超98個(gè)贊
%f和%lf分別是float類型和double類型用于格式化輸入輸出時(shí)對(duì)應(yīng)的格式符號(hào)。
其中:
float,單精度浮點(diǎn)型,對(duì)應(yīng)%f.
double,雙精度浮點(diǎn)型,對(duì)應(yīng)%lf.
點(diǎn)擊展開后面1條

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
應(yīng)該就寫%f。 float和double對(duì)應(yīng)的都是%f。
原因是:在向變參函數(shù)傳參時(shí),編譯器會(huì)自動(dòng)將float提升為double類型。
那么printf作為一個(gè)變參函數(shù),就算傳入float,printf得到的也是double類型。
%f在printf中作為double的指示符,也就可以用于float。
其實(shí)老標(biāo)準(zhǔn)中根本沒有%lf。在新標(biāo)準(zhǔn)(C99)中,為了在邏輯上和其他類型一致,才加入了%lf這個(gè)指示符,而實(shí)際上%lf就是%f
- 2 回答
- 0 關(guān)注
- 4471 瀏覽
添加回答
舉報(bào)
0/150
提交
取消