精华内容
下载资源
问答
  • 双精度浮点数的有效位数是16 一个浮点数由三部分组成:符号S、指数部分E(阶码)以及尾数部分M。单精度浮点数(float)总共用32来表示浮点数,其中尾数用23存储,加上小数点前有一隐藏的1(IEEE754规约数表示...
    1. 单精度浮点数的有效位数是7位。
    2. 双精度浮点数的有效位数是16位

    一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M。

    单精度浮点数(float)总共用32位来表示浮点数,其中尾数用23位存储,加上小数点前有一位隐藏的1(IEEE754规约数表示法),
    `2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,`
    所以说单精度浮点数的有效位数是7位。考虑到第7位可能的四舍五入问题,所以单精度最少有6位有效数字(最小尺寸)。 
    
    同样地:双精度浮点数(double)总共用64位来表示浮点数,其中尾数用52位存储,
    `2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,`所以双精度的有效位数是16位。同样四舍五入,最少15位。
    
    展开全文
  • 探究Vc++ 6.0 单精度(float)与双精度(double)的有效数字到底为多少??? 在学习《C语言与程序设计》在本书是书上写的是单精度实数有效数字为7双精度实数有效数字为15。书上只举了单精度实数是7的例子,...

    探究Vc++ 6.0 单精度(float)与双精度(double)的有效数字到底为多少???

    在学习《C语言与程序设计》在本书是书上写的是单精度实数有效数字为7位,双精度实数有效数字为15位。书上只举了单精度实数是7位的例子,这我就不乐意了。废话不多说。
    专业知识参考startwithdp的博客

    里面讲了单精度有效数字求法为,2^(23+1) = 16777216 ,因为10^7 < 16777216 <10^8 ,所以有效数字为7位。同样的双精度应为2^(52+1) = 9007199254740992,10^15 < 9007199254740992 < 10^16,所以双精度的有效位数是15位。

    不讲多的直接上代码,直接用a,b分别赋值
    第一次

    #include<stdio.h>
    void main()
    {
    	double a = 90071992547.40992;
        float  b = 16777.216;
    	printf("a=%f\nb=%f\n", a, b);
    }
    

    运行结果:可以看到单精度是8位,双精度是16位

    a=90071992547.409927
    b=16777.216797
    

    第二次 稍微加一点点

    #include<stdio.h>
    void main()
    {
    	double a = 90071992547.40993;
        float  b = 16777.217;
    	printf("a=%f\nb=%f\n", a, b);
    }
    

    运行结果:变成了单精度是7位,双精度是15位

    a=90071992547.409927
    b=16777.216797
    

    第三次 再加一点点

    #include<stdio.h>
    void main()
    {
    	double a = 90071992547.40994;
        float  b = 16777.218;
    	printf("a=%f\nb=%f\n", a, b);
    }
    

    运行结果: 又变成了单精度是8位,双精度是16位

    a=90071992547.409943
    b=16777.218750
    

    所以可以确定单精度实数有效数字为7位,双精度有效数字为15位。就是这么个情况,我也是试出来的。
    因为我查到的都是什么由于编译器的不同单精度6到7位,双精度15到16位,看的我头都大了。我就是想探究一下我的编译器到底有效数字是多少位的。
    求大佬来点干货!!!

    展开全文
  • 单精度最少有6位有效数字(最小尺寸)。 双精度的有效位数最少15位 一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M。 单精度浮点数(float)总共用32位来表示浮点数,...


    单精度浮点数的有效位数是7位。
    双精度浮点数的有效位数是16位。
    单精度最少有6位有效数字(最小尺寸)。
    双精度的有效位数最少15位


    1. 一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M。

    2. 单精度浮点数(float)总共用32位来表示浮点数,其中尾数用23位存储,加上小数点前有一位隐藏的1(IEEE754规约数表示法),2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。考虑到第7位可能的四舍五入问题,所以单精度最少有6位有效数字(最小尺寸)。 

    3. 同样地:双精度浮点数(double)总共用64位来表示浮点数,其中尾数用52位存储,     2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。同样四舍五入,最少15位。

    展开全文
  • 然而,由于类似问题的混合答案,我对它们的局限性感到有些困惑,无论浮点数和双打是否总是不准确,无论有效数字多少,或者只是不准确到第16位数.我在Java中运行了一些例子,System.out.println(Double.parseDouble(...

    据我所知,由于float / double的性质,不应该使用它们进行精确的重要计算.然而,由于类似问题的混合答案,我对它们的局限性感到有些困惑,无论浮点数和双打是否总是不准确,无论有效数字是多少,或者只是不准确到第16位数.

    我在Java中运行了一些例子,

    System.out.println(Double.parseDouble("999999.9999999999");

    // this outputs correctly w/ 16 digits

    System.out.println(Double.parseDouble("9.99999999999999");

    // This also outputs correctly w/ 15 digits

    System.out.println(Double.parseDouble("9.999999999999999");

    // But this doesn't output correctly w/ 16 digits. Outputs 9.999999999999998

    我找不到另一个答案的链接,该答案表明像1.98和2.02这样的值会向下舍入到2.0,因此会产生不准确,但测试显示值正确打印.所以我的第一个问题是浮点/双值是否总是不准确,或者是否存在可以确保精度的下限.

    我的第二个问题是关于使用BigDecimal.我知道我应该使用BigDecimal进行精确的重要计算.因此我应该使用BigDecimal的算法进行算术和比较.但是,BigDecimal还包含一个doubleValue()方法,它将BigDecimal转换为double.我可以安全地对双值进行比较,我知道它确实少于16位数吗?根本不会对它们进行算术运算,因此固有值不应该改变.

    例如,我可以安全地执行以下操作吗?

    BigDecimal myDecimal = new BigDecimal("123.456");

    BigDecimal myDecimal2 = new BigDecimal("234.567");

    if (myDecimal.doubleValue() < myDecimal2.doubleValue()) System.out.println("myDecimal is smaller than myDecimal2");

    编辑:在阅读了我自己答案的一些回复之后,我意识到我的理解是不正确的并已将其删除.以下是一些可能有助于未来的片段.

    “double不能精确地保持0.1.最接近的可表示值为0.1是0.1000000000000000055511151231257827021181583404541015625.Java Double.toString只打印足够的数字来唯一地标识double,而不是精确的值.” – Patricia Shanahan

    最佳答案 我建议你阅读这个页面:

    一旦你阅读并理解了它,并且可能将几个例子转换为64位浮点格式的二进制表示,那么你就可以更好地了解Double可以容纳多少有效数字.

    展开全文
  • float,double有效位数

    千次阅读 2018-10-07 19:23:01
    如题:C++中32位单精度浮点数能表示十进制的有效位数是多少位 单精度有效位数为7位,最小有效数字为6位 双精度有效位数为16位,最少为15位
  • float与double的范围和精度

    千次阅读 2016-06-30 15:52:38
    精度浮点数在机内占4个字节,用32位二进制描述。...尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点指数存指数的有效数字。 指数占多少位,尾数占多少位,由计算机系统决定。 可能是数符加尾数占24位,...
  • 设计一个电路简洁、精度高及测量范围宽的电容表,将待测电容的电容值显示到数码管,可显示 三位数字 工作量 适中 工作计划 3月8日 查资料,分析原理 3月9日 画原理图,列元器件表 3月11日 购买元器件 3月12日 ...
  • 准确来说,double不是确切地保留到小数后第几位,而是保留多少位有效数字。 C++中的double类型是保留6位有效数字。 这个还得从计算机的内部数值存储说起: 对于小数,计算机术语为 浮点数。 所谓浮点,顾名思义就是...
  • float范围是“-3.4E+38 ~ 3.4E+38”。FLOAT数据类型用于存储单精度浮点数或...1、Float:比特数为32,有效数字为6-7,数值范围为-3.4E+38 ~ 3.4E+382、Double:比特数为64,有效数字为15-16,数值范围为-1.7E-308~...
  • 双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。 一般情况下,对于那些不需要精确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf...
  • 浮点数构成

    2018-05-15 20:02:24
    浮点数构成 嗯,讨论的主题就是计算机中的浮点数。 一般在写一些静态类型的语言的时候(c , golang等等),通常会提供一种单精度浮点数的数据类型,float(float32...一般6-8位有效数字(假设float占4个字节,一...
  • 笔试选择题十二

    2016-08-30 22:00:32
    二、C++中32位单精度浮点数能表示的十进制有效数字多少位? 单精度浮点数的有效位数是7位。 双精度浮点数的有效位数是16位。 三、按消隐空间分类: 1)物体空间的消隐算法 (光线投射):将场景中每一个...
  • float表示单精度浮点数在机内占4个字节,用32位二进制描述。 double表示双精度浮点数在机内占8个字节,用64位二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符... 指数占多少位,尾数占多少位,...
  • float 和 double 的区别

    千次阅读 2016-11-27 19:59:19
    float表示单精度浮点数在机内占4个字节,用32位二进制描述。 double表示双精度浮点数在机内占8个字节,用64位二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符... 指数占多少位,尾数占多少位,由
  • 浮点数 OpenGL

    2018-11-11 23:15:07
    单精度浮点数在机内占4个字节,用32位二进制描述。 双精度浮点数在机内占8个字节,用64位二进制描述。 浮点数在机内用指数型式表示,分解为:...指数占多少位,尾数占多少位,由计算机系统决定。 可能是数符加尾数...
  • float与double区别

    2015-04-05 22:27:25
    单精度浮点数在内存中占4个字节,用32位二进制补码描述。 双精度浮点数在内存占8个字节,用64位二进制补码描述。 浮点数在内存中用指数型式表示,分解为:数符,尾数,指数符,...指数占多少位,尾数占多少位,由计
  • double与float的区别

    2015-06-30 11:56:02
    单精度浮点数在机内占4个字节,用32位二进制描述。 双精度浮点数在机内占8个字节,用64位二进制描述。 浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,...指数占多少位,尾数占多少位,由计算机系统决定
  • float与double的区别

    2018-06-05 20:02:50
    双精度浮点数在机内占8个字节,用64二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。数符占1二进制,表示数的正负。指数符占1二进制,表示指数的正负。尾数表示浮点数有效...
  • 关于 float 和double

    2014-09-23 22:56:16
    单精度浮点数在机内占4个字节,用32位二进制描述。 双精度浮点数在机内占8个字节,用64位二进制描述。 浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,...指数占多少位,尾数占多少位,由计算机系统决定
  • double和float的区别

    2013-12-27 15:08:22
    单精度浮点数在机内占4个字节,用32位二进制描述。 双精度浮点数在机内占8个字节,用64位二进制描述。 浮点数在机内用指数型式表示,分解为:数符,尾数,指数符...指数占多少位,尾数占多少位,由计算机系统决定。
  • float和double的区别

    2018-02-23 20:58:16
    float表示单精度浮点数在机内占4个字节,用32位二进制描述。 double表示双精度浮点数在机内占8个字节,用64位二...尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点指数存指数的有效数字。 指数占多少位,...
  • 关于ds18b20程序

    2009-05-05 18:01:55
    DS18B20温度传感器 * * C51 * * yajou 2008-06-28 无CRC * ********************************************************/ #include "reg51.h" #include "intrins.h" #include "DS18B20.h" /**********************...
  • 双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。 实型变量说明的格式和书写规则与整型相同。 例如: float x,y; (x,y为单精度实型量)  double a,b,c; (a,b,c为双精度...
  • 量结果为4 位有效数字,这时如果待测信号的频率为1Hz ,则计数闸门宽度必须 大于1000s。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两 种方法。当待测信号的频率大于等于2Hz 时,定时/ 计数器构成为...
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    CDbl 函数 返回已被转换为双精度子类型的变体的表达式。 Chr 函数 返回指定 ANSI 字符码的字符。 CInt 函数 返回已被转换为整数子类型的变体的表达式。 Class 对象 提供对已创建的类的事件的访问。 Class 语句 ...
  • VBSCRIP5 -ASP用法详解

    2010-09-23 17:15:46
    CDbl 函数 返回已被转换为双精度子类型的变体的表达式。 Chr 函数 返回指定 ANSI 字符码的字符。 CInt 函数 返回已被转换为整数子类型的变体的表达式。 Class 对象 提供对已创建的类的事件的访问。 Class 语句 ...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

双精度多少位有效数字