float的精度,float精准度

http://www.itjxue.com  2023-01-20 00:59  来源:未知  点击次数: 

C++中float,double到底保留几位有效数字

float精度是2^23,能保证6位。double精度是2^52,能保证15位。但是默认float和double都只能显示6位,再多需要#include iomanip,然后在输出语句之前插入cout setprecision(20);强制输出小数位。

拓展资料

float与double的范围和精度

1、范围

float和double的范围是由指数的位数来决定的。

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+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

2、精度

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

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

float到底能保留几位小数?

float对应的是6位小数,如果输出语句不做额外定义就输出带有6位小数。

float精度是2^23,能保证6位。double精度是2^52,能保证15位。但是默认float和double都只能显示6位,再多需要#include iomanip,然后在输出语句之前插入cout setprecision(20);强制输出小数位。

扩展资料:

浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。

数符占 1 位二进制,表示数的正负。

指数符占 1 位二进制,表示指数的正负。

尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。

指数存指数的有效数字。

指数占多少位,尾数占多少位,由计算机系统决定。

参考资料来源:百度百科-FLOAT

float精确到几位小数?

后面6位小数。

精度主要取决于尾数部分的位数。

对于float32(单精度)来说,表示尾数的为23位,除去全部为0的情况以外,最小为2-23,约等于1.19*10-7,所以float小数部分只能精确到后面6位,加上小数点前的一位,即有效数字为7位。

同理float64(单精度)的尾数部分为52位,最小为2-52,约为2.22*10-16,所以精确到小数点后15位,加上小数点前的一位,有效位数为16位。

float32和float64可以表示的数值很多:

浮点数类型的取值范围可以从很微小到很巨大。浮点数取值范围的极限值可以在math包中找到:

常量math.MaxFloat32表示float32能取到的最大数值,大约是3.4e38。

常量math.MaxFloat64表示float64能取到的最大数值,大约是1.8e308。

float32和float64能表示的最小值分别为1.4e-45和4.9e-324。

float和double表示范围和精度

float占用4个字节,也就是32个比特。

double占用8个字节,也就是64个比特lei。

float和double的范围是由指数的位数来决定的。

float的指数范围为-127--128,double的范围是-1023-1024。

负指数决定了绝对值最小的非零数,正指数决定了绝对值最大的数。也即决定了范围。

也即float的范围为-2^128-2^128,double的范围是-2^1024-2^1024。

float和double的精度是由尾数位决定的。浮点数在内存中是按照科学计数法来存储的,其整数部分始终是一个隐藏着的1。由于他是不变的,因此对精度不会造成影响的。

float精度范围是:2^23一共7位,因此最多能表示7位,但是能保证的是6位。

double的精度范围是2^52一共16位,同理最多能表示16位,但是能保证的是15位。

(责任编辑:IT教学网)

更多

推荐Painter教程文章