使用float,double和long double后,所有数字都不会显示在控制台中

时间:2015-02-02 13:26:54

标签: c++

我仍然是C ++的新手,并在这里寻找我的问题的答案,但所有的答案似乎有点太技术性,让我更加困惑。 让我首先说明,我知道,从C ++中我可以使用浮点数= 4个字节和大约。 7位数。双= 8字节,大约。 15位数。 Long double = 8个字节,大约15位。

这是我的问题:我创建一个简单的求和并使用float,double和long double声明变量。但是我在构建和运行后在控制台上的答案没有显示正确的数字位数。对于浮动它工作正常,但不适用于其他两个。示例:

float sum;
sum = 9.123456 * 5;

现在,当我构建并运行它时,控制台上的答案显示1.82469浮动(这很好,因为它是7位数,包括"点")。但是对于double和long double,当我运行它时,我的控制台中仍会显示1.82469(7位数)。

所以我有两个问题:

  1. 为什么我的控制台始终只显示7位数?
  2. 当double使用完全相同的字节(8)作为long double时,使用long double的意义是什么,并且两者都允许相同数量的数字(15)? 不确定这是否与任何相关,但我使用最新的CodeBlocks与GNU GCC编译器。

1 个答案:

答案 0 :(得分:1)

1) cout << setprecision(15) 

2)C ++标准没有完全指定类型。例如,&#34; long&#34;可以是32位或64位。所以,&#34;长双&#34;可以等于&#34; double&#34;可能不是。