《Java核心技术卷Ⅰ》读书笔记——3.3.2 浮点型

本文详细解释了float和double两种浮点数类型的精度差异,强调double类型在大多数应用中的优势,以及float类型的适用场景。文章还提到了浮点数的表示方法,包括十六进制表示,并警告了浮点数在金融计算中的舍入误差问题。

double表示这种类型的数值精度是float类型的两倍。绝大部分应用程序都采用double类型。在很多情况下,float类型的精度很难满足需求。事实上,只有很少的情况适合使用float类型,例如,需要单精度数据的库,或者需要存储大量数据。

float类型的数值有一个后缀F或f(如3.14F)。没有后缀F的浮点数值默认为double类型。

注释:可以使用十六进制表示浮点数值。例如,0.125=2^{-3}可以表示成0x1.0p-3。在十六进制表示法中,使用p表示指数,而不是e。注意,尾数采用16进制,指数采用10进制。指数的基数是2,而不是10。

警告:浮点数值不适用于无法接受舍入误差的金融计算中。例如,System.out.println(2.0-1.1)将打印输出0.8999999999999,而不是0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10,这就像十进制无法精确的表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值