在计算机科学中,浮点是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(floating-point number)。
计算机使用浮点数运算的主因,在于电脑使用二进位制的运算。例如:4÷2=2,4 的二进制表示为100、2 的二进制表示为010,在二进制中,相当于退一位数(100 -> 010)。 1 的二进制是01,1.0/2=0.5,那么,0.5 的二进制表示应该为(0.1),以此类推,0.25的二进制表示为0.01,所以,并不是说所有的十进制小数都能准确的用二进制表示出来, 如0.1,因此只能使用近似值的方式表达。
也就是说,,十进制的小数在计算机中是由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到的,这种表示方法类似于基数为10 的科学计数法。
一个浮点数a 由两个数m 和e 来表示:a = m × be。在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd 的p 位数(每一位是一个介于0 到b-1 之间的整数,包括0 和b-1)。
如果m 的第一位是非0 整数,m 称作正规化的。有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m 必须是正的。e 是指数。
位(bit)是衡量浮点数所需存储空间的单位,通常为32 位或64 位,分别被叫作单精度和双精度。
资料来源:《Java工程师成神之路(基础篇)》,链接:https://developer.aliyun.com/topic/download?id=923
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。