float double 精确度
c语言中,float型数据的存储范围明明是1.2*10^-38-----3.5*10^38,为什么书上说它的精确度只有6--7位呢?不应该是38位吗。double也是。。...
c语言中,
float 型数据的存储范围明明是 1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,
为什么书上说它的精确度只有 6 -- 7位呢? 不应该是 38位吗。
double 也是。。 展开
float 型数据的存储范围明明是 1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,
为什么书上说它的精确度只有 6 -- 7位呢? 不应该是 38位吗。
double 也是。。 展开
5个回答
展开全部
数据在内存中是按二进制存储的,float型的也是。
比如int型的4,存储为0100。二进制的0100转化十进制是0*2^3+1*2^2+0*2^1+0*2^0
所以你看的那个范围是38位,是指在内存中能存储38位二进制数。转化成十进制实际上就只有6-7位了。
一些具体数据忘记了,建议你上网查查数据的存储方式
比如int型的4,存储为0100。二进制的0100转化十进制是0*2^3+1*2^2+0*2^1+0*2^0
所以你看的那个范围是38位,是指在内存中能存储38位二进制数。转化成十进制实际上就只有6-7位了。
一些具体数据忘记了,建议你上网查查数据的存储方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
精确度和存储范围不是一个概念
虽然存储范围很大,不过是用科学计数法来表示的,类似1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,
而精确度表示的是能精确表示的位数,一般指有效数字,如:
1.2 * 10 ^ -38
虽然数很大,但精确度只有两位有效数字
还不明白hi我
虽然存储范围很大,不过是用科学计数法来表示的,类似1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,
而精确度表示的是能精确表示的位数,一般指有效数字,如:
1.2 * 10 ^ -38
虽然数很大,但精确度只有两位有效数字
还不明白hi我
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据范围指的是它可以达到的最大值和最小值 表示的是它可容纳的数值
而精确度是表示这个数的一种方式
不可能说像 200000000 我们这样写是不是既容易出错又不好写
那我们写成 2e8 是不是既简单又不容易出错
而精确度是表示这个数的一种方式
不可能说像 200000000 我们这样写是不是既容易出错又不好写
那我们写成 2e8 是不是既简单又不容易出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对,它只是一个范围,iso和ANSC规定了基本数据类型至少有多少位,但是没有具体化,这样做,把具体留给了实现。
你可以写代码,然后在你的机器上运行,看看你的机器配合你的编译器,然后出来的是多少位的的,你就知道了,
以后编程也就方便使用了
你可以写代码,然后在你的机器上运行,看看你的机器配合你的编译器,然后出来的是多少位的的,你就知道了,
以后编程也就方便使用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询