float和double变量中的数字

时间:2016-06-26 19:36:34

标签: c++ floating-point double

为什么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

2 个答案:

答案 0 :(得分:1)

你面临的问题是因为首先你应该知道float有4个字节,double有8个字节,3.141528579238可能存储在两者中,如果你想显示更多数字,我建议先包括: #include <iomanip>然后您可以使用以下内容在“。”之后打印任意数量的数字。 :cout << std::setprecision(7) << myFloat;这将显示3.1415285。

答案 1 :(得分:0)

这不是关于位的数字!

float32bitdouble64bit。 浮点数可以表示如下:a*2^x其中a < 1a => 0ax将存储在32- or 64-bit内存中。

您的程序打印相同内容的原因是因为它不会打印您的整个数字。