java浮点数默认类型 为何浮点数可能丢失精度?

发布时间:2022-08-19 20:58 已有: 人阅读

  并不是说Java浮点数的精度会丢失,而是存储在二进制中的所有浮点数都可能会丢失精度,所以存储在计算机中的浮点数有丢失精度的风险,但是丢失的精度不会影响我们的正常使用。当小数转换成二进制时,它们不一定用精确的二进制来表示,大多数情况下它们被当作近似值,这会导致精度的损失。如果用二进制进行计算,显然会进一步损失计算结果的准确性。举个简单的例子,0.1用二进制表示0.1×2=0.2,0.00.2×2=0.4,0.000.4×2=0.8,0.0000.8×2=1.6,0.00010.6×2=0.2,0.000110.2×2=0.4,0.0001100.4×2=0.8取整数0得到0.00011000.8×2=1.6取整数1得到0.000110010.6x 2=1.2取整数1得到0.000110011。。。得到一个无限循环的二进制十进制0.000110011没有办法用一个精确的二进制来表示0.1。而且计算机中用来存储浮点数的位数也是有限的,所以我们只能选择以一定的精度保存。当然,也有特殊的小数,比如0.25的二进制就是0.01

热门推荐
图文推荐
  • 最便宜的Snapdragon 888智能手机iQOO 7将在发
  • 黑客网站上提供了具有Clubhouse用户详细信息
  • 苹果面临即将到来的高端iPad显示器的供应短缺