尊旭网
当前位置: 尊旭网 > 知识 >

float范围

时间:2024-10-13 15:19:50 编辑:阿旭

float范围是多少?

1、Float:比特数为32,有效数字为6-7,数值范围为 -3.4E+38 ~ 3.4E+38


2、Double:比特数为64,有效数字为15-16,数值范围为-1.7E-308~1.7E+308


可根据应用程序的需求将浮点变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。





扩展资料


浮点型的两种类型


1、单精度浮点型(float)


单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。


浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围。


例如,当表示美元和分时,单精度浮点型是有用的。


这是一些声明单精度浮点型变量的例子:float hightemp,lowtemp;


2、双精度型(double )浮点型


双精度型,正如它的关键字“double ”表示的,占用64位的存储空间。在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。


所有超出人类经验的数学函数,如sin( ),cos( ) ,tan()和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。


float的取值范围是什么?

Float:比特数为32,有效数字为6-7,数值范围为 -3.4E+38 和 3.4E+38。浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。构成:浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。数符占 1 位二进制,表示数的正负。指数符占 1 位二进制,表示指数的正负。尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。指数存指数的有效数字。指数占多少位,尾数占多少位,由计算机系统决定。

float 有效数字问题

%f输出格式的确是以6位小数输出的。
但是计算机存储小数,则存在有效数字这一说,7位有效数字指的是只能保证7位的有效数字,如果输入的有效数字多于7位,则不保证之后的位的数字的准确性。当然,你输入的数能保证了准确性。
如果输入的数据多余七位有效数字,就会出错。比如1234567.8,输出后则会出现小数部分部分数字的不正确。
当然计算机处理这类精度问题是比较奇怪的,保证了四舍五入后的正确性,也基本上保证了计算的正确性。但是在计算方面,比如很大的数加上一个很小的数就会出现误差。这样也是为了减小一定的代价。所以在存储浮点型数据时,最好用double型。
你可以试试百度一下有关计算机存储小数的方式和精度误差之类的,会有比较好的解释


float的范围和有效数字怎么算出来的

首先说一下:
范围是3.4E-38 ——3.4E+38,可提供7位有效数字。
上述这两个量都是近似值,各个编译器不太一样的。

下面我就将标准值是怎么定义的,和你说一下:
这个比较复杂,建议你找一下IEEE754标准看一下。
这个简单说一下吧:
在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。
这些位的构成如下:
种类-------符号位-------------指数位----------------尾数位----
float---第31位(占1bit)---第30-23位(占8bit)----第22-0位(占23bit)
double--第63位(占1bit)---第62-52位(占11bit)---第51-0位(占52bit)

取值范围主要看指数部分:
float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。
double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。

由于float的指数部分对应的指数范围为-128~128,所以取值范围为:
-2^128到2^128,约等于-3.4E38 — +3.4E38

精度(有效数字)主要看尾数位:
float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位