C/C++:类中的双常量是不准确的

use*_*213 2 c++ double constants

我正在用C++编写一个类,它需要一些可以在整个类中访问的常量.通常我会使用#define,一个常量或静态声明但是有一些奇怪的事情发生:所以我举例说

#define Rm 8.3144621

std::cout << Rm << std::endl;

打印8.31446.

我也试过了

#define Rm 831.44621e-2
Run Code Online (Sandbox Code Playgroud)

const double Rm = 8.3144621

static double Rm = 8.3144621

以及每种可能的方法来初始化或强制转换为双常数.

有没有解决方案或我必须使用字段?

tao*_*ocp 6

如果需要输出所有数字的double,则需要设置正确的精度:

std::cout << std::fixed;
std::cout << std::setprecision(7) << Rm << std::endl;
Run Code Online (Sandbox Code Playgroud)

在这里观看现场演示:Double print Demo