[英]Query regarding double in c++
在特定網站上解決問題時,我編寫了以下代碼:
#include <iostream>
int main()
{
long l{12345678912345};
char ch{'a'};
double d{14049.30493};
std::cout << l <<'\n' << ch <<'\n' << d <<'\n';
return 0;
}
令人驚訝的是,雙精度的輸出是14049.3,而不是整數。 如果我明確提及
std::cout.precision(10);
然后打印完整號碼。 我究竟做錯了什么?
由std :: basic_ios :: init建立的默認精度為6,這意味着輸出限制為6位,除非在逗號前需要更多位。
另外, precision
設定考慮到所有的數字 (即之前和之后的逗號)在確定如何逗號后的數位可以被印刷。
你沒做錯什么 實際上,您已經解決了該問題!
std::cout
傾向於四舍五入,以避免打印出異常大的十進制數字。 這就是為什么您可以設置精度以在點后打印固定數量的數字的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.