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