为什么float和double变量存储的位数相同,不应该比float存储更多的数字
#include <iostream>
using namespace std;
int main(){
double a = 3.141528579238;
float b = 3.141528579238;
cout << a << " " << b;
return 0;
}
我将此作为输出
3.14153 3.14153
答案 0 :(得分:1)
你面临的问题是因为首先你应该知道float有4个字节,double有8个字节,3.141528579238可能存储在两者中,如果你想显示更多数字,我建议先包括:
#include <iomanip>
然后您可以使用以下内容在“。”之后打印任意数量的数字。 :cout << std::setprecision(7) << myFloat;
这将显示3.1415285。
答案 1 :(得分:0)
这不是关于位的数字!
float
是32bit
,double
是64bit
。
浮点数可以表示如下:a*2^x
其中a < 1
和a => 0
。
a
和x
将存储在32- or 64-bit
内存中。
您的程序打印相同内容的原因是因为它不会打印您的整个数字。