簡體   English   中英

有關C ++中double的查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM