2

我正在用 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

以及初始化或强制转换为双常量的所有可能方式。

有解决方案还是我必须使用字段?

4

2 回答 2

6

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

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

在此处查看现场演示:双打印演示

于 2013-05-29T23:41:30.880 回答
0

尝试

std::cout << std::setprecision(8) << Rm << std::endl
于 2013-05-29T23:41:53.667 回答