网上有关“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。
是说的十进制的7位。
具体的精度是多少位,要看操作系统是多少位的
也就是说浮点数是多少位的,7位是早期的c语言课本里面说的,针对的是16位的操作系统
在32位的操作系统下,精度有10多位。
能保证7位准确,并不是说第8位就肯定不准确。
具体解释:
计算机保存浮点数时,是把数看作a*2^b这样的形式,不是以10为底数,而是以2为底数。即将数转换成以2为底的“科学计数法”的形式,再由这个形式反转换成10进制形式,但数据又有位数限制,所以有些数转换成二进制计数法形式后位数超出了限制的位数,那么转换回来时得到的数就会与原数有偏差,不同的数这个偏差是不同的,有可能在小数点后第7位,也有可能在第8位,也有可能在其他位数,但能保证小数点第6位之前是正确的。
Type Exponent length Mantissa length
float 8 bits 23 bits
浮点数的有效位:23Bits,合24位
其分辨率为:1/(2^24)=0.000,000,059,604644775390625
=0.000,000,06
即浮点数可表示的最小数的单位为0.000000059604644775390625;
其他的数都由0.000000059604644775390625 * 2^X来表示的,
12345678920
12345678900
000000059604644775390625
=12345678848
12345678848=0.000000059604644775390625 * 2^X
关于“float精度到哪一位?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
评论列表(3条)
我是雅驰号的签约作者“幼旋”
本文概览:网上有关“float精度到哪一位?”话题很是火热,小编也是针对float精度到哪一位?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。后...
文章不错《float精度到哪一位?》内容很有帮助