double型变量的有效数字与取值范围怎么理解

sysabod 2009-02-22 11:55:51

我的书上这样写double型的有效数字是15~16位,数值范围-1.7×10^-308~1.7*10^308,那么请问15~16位的有效数字位数怎么能表示那么大的数值呢?
...全文
1907 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sysabod 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 waizqfor 的回复:]
引用楼主 sysabod 的帖子:

我的书上这样写double型的有效数字是15~16位,数值范围-1.7×10^-308~1.7*10^308,那么请问15~16位的有效数字位数怎么能表示那么大的数值呢?

一般都是用
x * 10^n 这种表示方法 任何一个数 都可以表示成一个数 乘以10的N次方的形式 也就是科学记数法
这样表示 多大的数都可以了
[/Quote]那假设我的数是1236548799654711236547788665212,那请问各位这该怎么用有效位只有15~16位的科学计数法表示。
sxbwelcome 2009-02-23
  • 打赏
  • 举报
回复
有效位只决定精度,而数值范围主要取决于阶码的位数
sxbwelcome 2009-02-23
  • 打赏
  • 举报
回复
这个要看你的c语言中对于浮点数的编码规则,即多少位存储尾数,多少位存储阶码,根据这些才能推导出来
yinbinux 2009-02-23
  • 打赏
  • 举报
回复
指的是用二进制表示的位,比如说4个有效位可以表示16个数,范围是0-15
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 sysabod 的帖子:]

我的书上这样写double型的有效数字是15~16位,数值范围-1.7×10^-308~1.7*10^308,那么请问15~16位的有效数字位数怎么能表示那么大的数值呢?
[/Quote]
一般都是用
x * 10^n 这种表示方法 任何一个数 都可以表示成一个数 乘以10的N次方的形式 也就是科学记数法
这样表示 多大的数都可以了
九桔猫 2009-02-23
  • 打赏
  • 举报
回复
还是有时间看下IEEE 浮点数标准的好
bfhtian 2009-02-23
  • 打赏
  • 举报
回复
一部分位表示有效位,一部分表示指数
zhuxueling 2009-02-23
  • 打赏
  • 举报
回复
1的后面如果有1万个0,
你可以用: 1,1万, 就能表示了。
如果是123后面有一万个0,
就可以用: 1.23, 1万零2.


浮点计数也差不多这么回事。
arong1234 2009-02-22
  • 打赏
  • 举报
回复
例如1.7 * 10 ^308就是一个很大的数,它的有效数字位数是2,你说2个十进制有效位能不能表示这个数?:)
arong1234 2009-02-22
  • 打赏
  • 举报
回复
科学计数法是用

a * 10^k表示的,a是一个纯小数,它的位数就是有效位数
而k表示这个浮点数的放大因子,k可以范围很大,使得这个数变动范围很大

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧