c++ - Long double 不打印为我用它初始化的常量

标签 c++ variables compilation

<分区>

Possible Duplicate:
Floating point inaccuracy examples

我有问题...当我编译 src 时,显示的变量与我初始化的变量不一样,请看:

#include <iostream>

    using namespace std;

    int main()
    {
      long double mynum = 4.7;
      cout.setf(ios::fixed,ios::floatfield);
      cout.precision( 20 );
      cout << mynum << endl;
    }

然后:

[fpointbin@fedora ~]$ ./a.out 
4.70000000000000017764

如何解决?我想“cout”显示 4.700000...

最佳答案

您的变量是 long double,但文字 4.7 的默认精度仅为 double。由于您将其打印为 long double,因此解释选择使用足够的有效数字打印它以将其与相邻的 long double 值区分开来,即使这些相邻值不是可能的 double

关于c++ - Long double 不打印为我用它初始化的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135135/

相关文章:

javascript - JS - 将所有字符串替换为查询中的局部变量

javascript - 为什么我的变量不断自行重置?

java - 从 Java 内部编译外部 .java 文件

C++ 错误 "undefined reference to GPScoord::(double,double) etc."

c++ - 为什么内存地址是偶数?

c++ - 函数后 vector 赋值的表现

variables - 如何检查变量是否在 Octave 中定义?

java - 为什么我需要对对象数组中的特定引用进行强制转换?

c++ - 检查泛型 lambda 参数的类型

c++ - 为什么 __fastcall assebmler 代码大于 MS C++ 中的 __stdcall 代码?