簡體   English   中英

C / C ++:類中的雙常量不正確

[英]C/C++ : double constants in class are inaccurate

我正在用C ++寫一個類,它需要一些在整個類中都可以訪問的常量。 通常我會使用#define,const-或靜態聲明,但是會發生一些奇怪的事情:例如,我寫

#define Rm 8.3144621

但是std::cout << Rm << std::endl;

打印8.31446。

我也試過

#define Rm 831.44621e-2

const double Rm = 8.3144621

static double Rm = 8.3144621

以及每種可能的初始化或強制轉換為雙精度常量的方式。

有解決方案嗎?還是我必須使用字段?

如果需要輸出全數字的雙精度數,則需要設置正確的精度:

std::cout << std::fixed;
std::cout << std::setprecision(7) << Rm << std::endl;

在此處觀看現場演示: 雙重打印演示

嘗試

std::cout << std::setprecision(8) << Rm << std::endl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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