C++中的数据类型是这样的,如double,
在Msdn里有样的描述:
double 8 none 1.7E +/- 308 (15 digits) 
里面有几个地方不明白!
1,应该有正负之分吧!
是不是+/-1.7e+/-308?
2、15是小数位还是指数位,或者是其他的位?
如果是小数位,则应该是2^(15-1)>308,这是怎么回事,如何理解?
在这里领教各位高手的高招!

解决方案 »

  1.   

    还有一个就是long double,在Msdn里是这样的
    same as double.但是在Dev-CPP里有测试的值是12,难道连这个最基本的都不能保证与标准accordance?
      

  2.   

    8代表8个字节. 1.7E +/- 308 (15 digits) 
    1.7的+308和-308次方.-308时描述精确度.就是能精确到小数点后15位.+380表示double能表示的最大值
      

  3.   

    E是exp 次方的意思9的3次方这样表示 9e+3
      

  4.   

    我一直认为类型只不过是代表一定的存储空间。至于空间中的内容则有用户自己管理。
    打个比方吧:0xff, 你可以无符号的:255,也可当成有符号的-1;0x61,你可以当成整数97,也可当成字符“A”。
    当然对于有小数部分的,计算机中还有它固有的表示办法。
      

  5.   

    E是exp 次方的意思9的3次方这样表示 9e+3
      

  6.   

    本来按理应该是1.7的308次方的,但是在windows计算器上1.7E+308那就是1700000000.......
    显然double达不到这个最大值,都搞晕了.现在的东西写法都没有标准.
      

  7.   

    Use the <limits> header, and look at the value of numeric_limits<double>::max()//double.cpp 2004-04-10 WGF Wuhan
    #include<iostream>
    #include<limits>using namespace std;int main()
    {
      cout << "double: " << numeric_limits<double>::max() << endl;
      return 0;
    }//output:
    //double: 1.79769e+308
      

  8.   

    谁能不能给我一个这个数是如何得来的答案??
    我已经查了好多资料,也不知道其所以然了。而且,这个Double会不会遵守IEEE754的标准,我想是个问题!