`
lspengjiang
  • 浏览: 36788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Float和Double的范围和精度

 
阅读更多

Float与Double的范围和精度

1 范围

floatdouble的范围是由指数的位数来决定的。

float的指数位有8位,而double的指数位有11位,分布如下:

float

 

1bit(符号位)

8bits(指数位)

23bits(尾数位)

 

double

 

1bit(符号位)

11bits(指数位)

52bits(尾数位)

 

于是,float的指数范围为-127~128,而double的指数范围为-1023~1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308

2 精度

floatdouble的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

float2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

分享到:
评论

相关推荐

    float与double的范围和精度

    通过创建一个函数来验证Number类型的精度和范围。例如,create or replace function func_test(p_type number) return number is ... 5. 结论 Number类型的总长度是40位,其中可能包括小数点,负号位。了解Number...

    float double精度的详细解释

    这两种类型的区别主要体现在精度和范围上。 #### 二、浮点数的结构 浮点数在计算机内部通常按照IEEE 754标准进行存储。该标准定义了浮点数的组成部分,包括符号位、指数位以及尾数位。 - **符号位**:决定数值的...

    float和double

    float和double浮点数类型的精度和范围解析 浮点数类型float和double是编程语言中最常用的数值类型,但是它们的精度和范围却是程序员需要注意的重要问题。本文将详细解释float和double的范围和精度,及其在商业计算...

    基于C++浮点数(float、double)类型数据比较与转换的详解

    在C++编程语言中,浮点数类型包括`float`和`double`,它们用于表示非整数值。本文主要探讨的是这两个类型的数据在比较和转换过程中的一些关键知识点。...理解这些细节对于编写高精度和鲁棒的C++代码至关重要。

    float、double类型介绍.zip

    2. **精度和误差**:解释了由于浮点数不是精确表示,所以可能会存在舍入误差,尤其是在数学运算中。 3. **浮点运算的不一致性**:讨论了不同平台上的浮点运算可能产生微小差异的问题。 4. **类型转换**:如何将整数...

    解决java数值范围以及float与double精度丢失的问题

    解决java数值范围以及float与double精度丢失的问题 Java中的数值范围和浮点数精度问题是许多开发者经常遇到的问题。下面我们将详细探讨Java中的数值范围、float和double类型的精度问题,并且提供解决方案。 一、...

    十六进制(HEX)和浮点类型(float、double)转换工具

    这种表示方式允许它们在有限的存储空间内表示极大的或极小的数值范围,但同时会引入精度损失。 转换十六进制到浮点类型和反之的过程较为复杂,涉及到对二进制表示的理解。对于十六进制转浮点,首先要将十六进制转换...

    HEX-Float转换工具 16进制转成float 或double类型数据的一个小工具

    而浮点数则是一种科学计数法的二进制表示,用于存储可能的大范围和高精度数值。浮点数分为两部分:指数部分和尾数部分,它们都是二进制形式的。 在计算机中,根据IEEE 754标准,float和double类型的浮点数有不同的...

    C# 按照IEEE 754标准对Float和Double类型进行转换

    本话题主要聚焦于如何根据IEEE 754标准来处理和转换浮点数类型,包括`float`和`double`。IEEE 754是国际上广泛采用的一个标准,用于定义浮点数的存储格式,它规定了二进制浮点数的表示方法,包括正负号、指数和尾数...

    float_double存储问题

    float 和 double 是 C 语言和 C# 语言中最常用的浮点类型,它们分别使用单精度和双精度来存储浮点数据。 float 数据占用 32bit,而 double 数据占用 64bit。 在 IEEE 的规范下,float 遵从的是 IEEE R32.24,而 ...

    详解java中float与double的区别

    float 和 double 都可以用来表示实数,但是它们的精度和取值范围不同。 float 的精度是 8 位有效数字,取值范围是 10 的 -38 次方到 10 的 38 次方,而 double 的精度是 17 位有效数字,取值范围是 10 的 -308 次方...

    浮点数的存储结构(double和float)

    3. **精度和范围**:由于`float`和`double`的位数不同,它们的精度和表示的数值范围也有所差异。`double`通常具有更高的精度和更大的数值范围,因此在需要更高精度的计算中更常被使用。 了解这些基础知识后,可以...

    float_double_explicit.rar_float

    浮点数(float)通常占用4字节(32位),而双精度浮点数(double)则占用8字节(64位),它们都遵循IEEE 754标准,以提供标准化的精度和运算规则。在进行数学计算时,尤其是涉及精度和速度的场景,理解和正确使用这...

    C语言中floatdouble的区别.pdf

    在实际编程中,float和double类型都可以用来存储浮点数,但它们的精度和数值范围不同。一般来说,double类型的精度更高,数值范围更广,但它占用的内存空间也更大。因此,在选择浮点类型时,需要考虑到程序的具体...

    详解iOS之关于double/float数据计算精度问题

    本篇文章将详细介绍 iOS 中 double/float 数据计算精度问题的根源、解决方案和高精度计算方法。 一、double/float 数据计算精度问题的根源 在 iOS 开发中,我们经常使用 double 和 float 数据类型来表示小数。但是...

    float和double类型数据在内存中的存储方法

    `double`与`float`类似,但具有更高的精度和范围。在64位的`double`中,分配如下: - 符号位:1位 - 指数位:11位 - 尾数位:52位 对于`double`类型,偏移量(Bias)为1023。同样,`123.45`的`double`表示会更复杂...

    C语言中floatdouble的区别[参照].pdf

    例如,在科学计算和工程计算中,double类型的浮点数可能是更好的选择,因为它提供了更高的精度和更大的表示范围。但是在一些需要速度和效率的应用场景中,float类型的浮点数可能是更好的选择,因为它占用更少的内存...

    十进制和十六进制转换成float、double数据

    本文将详细讲解如何将十进制和十六进制数值转换为浮点数(float)和双精度浮点数(double)。 首先,让我们从十进制开始。十进制是我们日常生活中最常用的计数系统,其基数为10。在MATLAB中,我们可以通过直接输入...

    C#中float的取值范围和精度分析

    本文实例分析了C#中float的取值范围和精度。分享给大家供大家参考。具体分析如下: float类型的表现形式: 默认情况下,赋值运算符右侧的实数被视为 double。 因此,应使用后缀 f 或 F 初始化浮点型变量,如以下示例...

Global site tag (gtag.js) - Google Analytics