我正在用C ++编写一个类,它需要一些可以在整个类中访问的常量。通常我会使用#define,一个常量或静态声明,但有一些奇怪的事情发生: 所以例如我写
#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
以及初始化或强制转换为double常量的所有可能方法。
是否有解决方案或是否必须使用字段?
答案 0 :(得分:6)
如果需要输出所有数字的双精度数,则需要设置正确的精度:
std::cout << std::fixed;
std::cout << std::setprecision(7) << Rm << std::endl;
在此处观看现场演示:Double print Demo
答案 1 :(得分:0)
尝试
std::cout << std::setprecision(8) << Rm << std::endl