第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

printf和long double

printf和long double

C
紅顏莎娜 2019-12-03 11:12:48
我在Windows上將最新的gcc與Netbeans一起使用。為什么不起作用long double?是printf符%lf錯了嗎?碼:#include <stdio.h>int main(void){    float aboat = 32000.0;    double abet = 5.32e-5;    long double dip = 5.32e-5;    printf("%f can be written %e\n", aboat, aboat);    printf("%f can be written %e\n", abet, abet);    printf("%lf can be written %le\n", dip, dip);    return 0;}輸出:32000.000000 can be written 3.200000e+0040.000053 can be written 5.320000e-005-1950228512509697500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000can be written 2.725000e+002Press [Enter] to close the terminal ...
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

除了錯誤的修飾符之外,gcc的哪個端口可以連接到Windows?mingw使用Microsoft C庫,并且我似乎還記得該庫不支持80位長的double(出于各種原因,Microsoft C編譯器使用64位長的double)。


查看完整回答
反對 回復 2019-12-03
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

從printf聯機幫助頁:


l(ell)后續(xù)的整數轉換對應于long int或unsigned long int參數,或者后續(xù)的n轉換對應于long int參數的指針,或者后續(xù)的c轉換對應于wint_t參數,或后續(xù)的s轉換對應于wchar_t參數的指針。



遵循a,A,e,E,f,F,g或G轉換的LA對應于長double自變量。(C99允許%LF,但SUSv2不允許。)


所以,你想要%Le,不是%le


編輯:一些進一步的調查似乎表明Mingw使用MSVC / win32運行時(用于諸如printf之類的東西)-將long double映射為double。因此,將提供本機long double的編譯器(如gcc)與運行時混合在一起似乎并沒有什么問題。


查看完整回答
反對 回復 2019-12-03
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

如果使用的是MinGW,則問題在于默認情況下,MinGW使用I / O響應。Microsoft C運行時提供的格式化功能,該功能不支持80位浮點數(在Microsoft land中為long double== double)。

但是,MinGW還附帶了一組替代實現,它們確實支持長雙打。要使用它們,請在函數名稱前加上__mingw_(例如__mingw_printf)。根據項目的性質,您可能還想全局#define printf __mingw_printf或使用-D__USE_MINGW_ANSI_STDIO(這將啟用所有printf-family函數的MinGW版本)。


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 1126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號