java单精度和双精度的区别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java 单精度和双精度的区别
为什幺会有精度问题?
计算机处理数据都涉及到数据的转换和各种复杂运算,比如,不同单位换算,不同进制(如二进制十进制)换算等,很多除法运算不能除尽,比
如10÷3=3.3333.。。。。。。无穷无尽,而精度是有限的,3.3333333x3 并不等于10,经过复杂的处理后得到的十进制数据并不精确,精度越高越精确。float 有8 位有效数字,double 有16 位有效数据,float 和double 都是到大到一定的值自动开始使用科学计数法,并保留相关精度的有效数字,所以
结果是个近似数。如果更精确的运算小数(比如金融,数学),希望结果更符合预期值应该使用Bigcimal。计算器应该也会有精度问题,也会有二进制十
进制转换。
java 的双精度和单精度的区别
现实问题中不但有整型数值,还有小数。Java 语言也提供了针对小数的存储类型,分别是float 类型和double 类型。
Java 语言的浮点类型有两种不同的表示形式:十进制数和科学计数法。十进制数形式,由数字和小数点组成,且必须有小数点,如0.123、
12.85、26.98 等;科学计数法形式,如:2.1E5、3.7e-2 等。其中e 或E 之前