中易网

C++ double 类型范围为什么那么大

答案:5  悬赏:40  
解决时间 2021-03-29 07:22
C++ double 类型范围为什么那么大
最佳答案
它表示大数的代价就是损失了精度.打个比方,我有0-9这10个数,我定义数n表示5n,那么这10个数最大能表示45,但41,42这些不是5的倍数的数就没法精确表示了,只能在定义中把它们靠向40或者45.这就是为了扩大表示范围而损失了表示精度.
全部回答
范围与真正范围内数值的个数,是不一样的。
因为它不是每个数都能表示
它是分为2大块存放
一块存放有效数字(包括小数点)
一块存放 次方数
这样存放的
不是挨个存放
太精细的数字是显示不了的
double有效数字位数一般在14-16左右
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位)
8bits(指数位)
23bits(尾数位)
double:
1bit(符号位)
11bits(指数位)
52bits(尾数位)
于是,float的指数范围为-128~127,而double的指数范围为-1024~1023,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^127,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1023,也即-1.79E+308 ~ +1.79E+308。
1、因为double类型是浮点数,这种类型可以用科学记数法表示,所以表示范围非常大。
但是,使用可浮点数的代价就是损失了精度。它把这部分精度用于指数的表示。所以double类型的优点就是数据范围大,缺点是精度不足,大概只有15~16位有效位数。
2、浮点数类型及其数值范围:
  类型比特数 有效数字数值范围
  float 类型 326-7-3.4*10(-38)~3.4*10(38)
  double类型6415-16-1.7*10(-308)~1.7*10(308)
  long double类型 128 18-19 -1.2*10(-4932)~1.2*10(4932)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有安徽铜陵到贵州玉屏的高铁吗?
上海哪里有淘宝网店托管的专业人士啊?
台州椒江哪里有卖卫生巾收纳包的?
赤峰美林谷滑雪有限公司的美林谷滑雪场怎么样
大兴区教育考试中心的成人高考可信吗?
拐拐,拐姑.学名是什么鸟
北京普通高中美术特长班有哪些学校
"江畔何人初见月,江月何年初照人,"是谁写的,
邯郸最好的电脑学校?听说邯郸清华万博不错,
惠氏奶粉不易溶解,是加的淀粉多吗?对儿子的
在深圳传杞店里看到了宁夏红的产品,这个宁夏
海门三星专卖店里三星s6 edge多少钱
最高分请教:开家云吞店需要注意那些问题?
(1)The _______are so big A.apple. B.potato
台州市黄岩区哪里有卖新西兰卡洛塔妮羊奶粉的
推荐资讯
我被伽马射线辐射了,我已经有一点变绿巨人的
霍尼韦尔可视对讲产品厦门代理商
打了玻尿酸多久可以抽烟
顺义快修快保汽车装饰地址在什么地方,想过去
我想问下玻璃移门双门锁有哪几种
从砂锅居到北京机场怎么走方便快捷
怎么辨别国珍松花钙粉的真假
激光祛斑好不好,好不好反弹
《阴险狡猾只为强》指什么动物
哪里买单反相机最便宜?
香港葵芳机房的具体地址在哪里?
什么物流可以寄空调等大件物品回家,收费标准
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?