实型数据在内存中的存储格式
对于实数,无论小数表示形式还是指数表示形式,在计算机内部都是采用浮点形式来存储。
浮点形式是相对于定点形式而言的。
定点数是指小数点位置是固定的,小数点位于符号位和第一个数值位之间,他表示纯小数;(整型数据是定点表示的特例,只不过他的小数点的位置在数值之后而已)
计算机处理的数据不一定是纯小数或是整数,而且有些数据的数值很大,或是很小。因此我们就需要用浮点形式来表示。
浮点形式:
浮点数:是指小数点的位置是可以浮动的数。例如123.4可以写成0.123410^3
//123410^-1等等。
浮点数是将实数分为阶码和尾数两部分来表示。
实数N:N=S×r^j
S为尾数(正负均可),一边用纯小数表示
j为阶码(正负均可,但必须为整数);r为基数
二进制而言r=2。
如果系统用更多的位存储尾数,则可以增大数值的有效数字位数,提高精度,但相应的表数范围就会缩小;
如果系统用更多的位存储阶码,则可以扩大实数的表示范围,但相应的精度也会降低。
如图所示,因为double类型的实型常量有效位数是16位
float类型的实型常量有效位数为7位
所以float类型7后的数字都是不准确的。
若将double类型的数据赋给float类型就会出现数据截断错误