C++ double 可以表示负数吗?

RT,我看书上写的double 的数值范围是1.7*10^-308~1.7*10^308这个范围,也就是说如果我声明一个变量y是double类型的,然后比如y=1.0-3.0,按理来说它得到的应该是-2.0,但是它的数值范围没有负数,那是不是最后y就保存为2.0了?但是我上机操作,y又是以-2.0输出的,这是怎么回事呢?

可以表示负数,书上的这个写法很有问题,但一直在用,不知道为什么
1.7*10^-308~1.7*10^308表示数据最大可以到1.7*10^308,数据最高精度可达1.7*10^-308,与正负无关
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-13
double类型的取值范围:
负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324
正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308

所以,很明显double 可以表示负数本回答被网友采纳
第2个回答  2011-09-19
看下维基百科中的“IEEE 754” 标准,了解浮点数的构成,另外intel文档(v1卷第4章)中浮点数的范围和你给出的也有差别,没有必要去死记这个数,关键要弄清别人以什么方式算出这个值的。

简单的说:浮点数 = 符号位 + 移码表示的指数 + 规格化的尾数(significand,也称为fraction)
第3个回答  2011-09-19
可以表示负数,跟正数的范围是完全对称的追问

那为什么书上没有注明呢?像书上写int的范围就注明了从-21xxx~+21xxxx?

第4个回答  2011-09-19
看看IEEE double Definition 就明白了,这个是一般语言和机器实现double时使用的结构,它有一个bit是符号位的

参考资料:http://hi.baidu.com/chqzeng/blog/item/48ea5429bbca05fd98250a5d.html

C++ double 可以表示负数吗?
可以表示负数,书上的这个写法很有问题,但一直在用,不知道为什么 1.7*10^-308~1.7*10^308表示数据最大可以到1.7*10^308,数据最高精度可达1.7*10^-308,与正负无关

C++ double 可以表示负数吗?
所以,很明显double 可以表示负数

C++ double 可以表示负数吗?
double类型的取值范围:\\x0d\\x0a负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324\\x0d\\x0a正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308\\x0d\\x0a\\x0d\\x0a所以,很明显double 可以表示负数 ...

c++中的double是什么,有什么作用,烦举一例。
在C++编程中,double是一种重要的数据类型,它代表双精度浮点数。与单精度浮点数float不同,double使用64位(8个字节)来存储数值,提供了更高的精度。double能够精确表示十进制的15到16位有效数字,其负值范围大约从-1.7976E+308到-4.94065645841246544E-324,正值则从4.94065645841246544E-324到1.79769...

c++中的double是什么,有什么作用,烦举一例。
使用 64 位(8字节) 来储存一个浮点数。它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308。比如:声明double 类型的变量:double num;初始化double 类型的变量:num = 5.621456873;...

在c++中对double使用sqrt函数后结果变成-1#IND
b=8.23*(10^(-3));p=0.101*(10^6);d=0.005;n=1.83*(10^(-5))在c语言中^是表示异或的意思,故这里的b,p,n都是负数了,应该改为用pow函数:include <iostream>#include <math.h>using namespace std;int main(){ double a,g,l,b,p,d,n,U,tg,vg,r1,r2,q,pi; ...

c++中输出值想为负数,需要如何定义?
有符号数都可以 整数的话,int,long,short都行 浮点数就没有符号的说法了,都有符号,double,float都行 只要值是负值,那么cout直接输出都是负数

double 的数据类型范围是多少?c++
double 的数据类型取值范围如下:1、负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324;2、正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

c++能表示的double的范围
在VC中:float数值范围约在 -10e38~10e38,并提供7位有效数字位,绝对值小于10e38地数被处理成零值 double数值范围约在-10e308~10e308,并提供15~16位有效数字,绝对值小于10e308地数被处理成零值

double和int都是只能表示正数吗?c++
不是,可以将负数赋值给int或者double型的变量

相似回答