java中浮点计算是什么,怎样理解-软件教程-学码思教育
全国热线

025-86901720

全国监督投诉热线:9:00-23:00

java中浮点计算是什么,怎样理解

到底java中浮点计算是什么,怎样理解呢?今天就让南京学码思java培训老师通过简单的例子来给大家介绍一下。

新手刚开始接触java的时候,需要从一点一点的基础开始学起,知识点零碎,入门不容易,包括很多学码思java培训班的同学,虽然有专业老师带领着学习,却也常常会遇到一些不好理解的知识点,比如java中的浮点计算,很多人是存在诸多困惑的,学起来会有些云里雾里。到底java中浮点计算是什么,怎样理解呢?今天就让南京学码思java培训老师通过简单的例子来给大家介绍一下。

java中浮点计算是什么,怎样理解

简单例子:


class Test

{

public static void main(String[] args)

{

System.out.println(0.05+0.01);

System.out.println(1.0-0.42);

System.out.println(4.015*100);

System.out.println(123.3/100);

}

}

打印出的结果是:

0.060000000000000005

0.5800000000000001

401.49999999999994

1.2329999999999999


为什么会是这样的数值?再看一个代码


class Test1

{

public static void main(String[] args)

{

System.out.printf("%1.20f\n",0.05f);

System.out.printf("%1.20f\n",0.01f);

System.out.printf("%1.20f\n",1.0f);

System.out.printf("%1.20f\n",0.42f);

System.out.printf("%1.20f\n",123.3f);

}

}

看上面的代码运行的结果:

0.05000000074505806000

0.00999999977648258200

1.00000000000000000000

0.41999998688697815000

123.30000305175781000000


这是float在计算机上面的表示的。


java中的float和double,采用IEEE754标准,实际上是用利用科学计数法来表达实数。即用一个尾数(Mantissa也叫有效数字 ),一个基数(Base),一个指数(Exponent)以及


一个表示正负的符号来表达实数。实数表示分为三个域。


float用32bit存储,double用64bit存储。


第一个域为符号域,0 表示数值为正数,而 1 则表示负数;


第二个域为指数域,对应于我们之前介绍的二进制科学计数法中的指数部分。其中单精度数为 8 位,双精度数为 11 位。float单精度的指数范围为-127 和 127 之间。


第三个域为尾数域,其中单精度数为 23 位长,双精度数为 52 位长。


造成无法准确的计算出来我们想要的结果,原因是科学计算法无法准确的存储,只有相近的取近似值


所以我们对于精确的计算采用的是BigDecimal类可以解决上面的问题。


通过上面这个简单的例子,不知道大家是不是对于浮点计算可以有了进一步了解呢?学码思java培训班采用的案例式教学方法,引进的企业真实项目作为教学案例指导理论学习,理解企业更轻松,有任何疑问也可以及时请教老师,快速入门java行业,掌握java开发技能不难。如果你还有什么疑问或是想获得直接java教程的话,都可以直接咨询在线老师。


上一篇:做好java开发你应该注意这几个原则
下一篇:java中不同进制是如何表示的

相关推荐

免费试听 | 学费咨询 | 在线报名 | 申请补贴 | 软件培训 | 网站地图

2016-2020 南京学码思教育科技有限公司 .All Rights Reserved

苏ICP备16033487号 www.njxms.com.cn

全国热线

400-080-3312

全国监督服务热线:9:00-23:00