我試圖在我的程序中使用long double類型來打印出pi的更多數字。但它只顯示5位十進制數字。無法打印pi的更多小數
這是我的代碼。
int main(int argc, char** argv) {
long double pi_18 = acos(static_cast<long double>(-1));
cout << "pi to 18:" << pi_18 << endl;
return 0;
}
,這是我的輸出:
pi to 18: 3.14159
我怎樣才能解決這個問題?
ACOS()接受雙並返回一個double所以即使您在輸入和輸出轉換成長雙倍你永遠不會超出雙精度,因爲輸入被截斷爲雙精度,輸出是雙精度值的長雙精度的轉換,請使用acosl()而不是 – woggio
@ user2318607 - 如果'acos'爲'std :: acos' from''它超載,'acos((-1)'返回long double,但函數調用最好寫成'aces(1.0L)'。 –