美文网首页程序员
java基本算数运算注意事项

java基本算数运算注意事项

作者: 何佳阳 | 来源:发表于2020-03-24 09:54 被阅读0次

1:加减乘除注意事项

运算时要注意结果的范围,使用恰当的数据类型。两个正数都可以用int表示,但相乘的结果可能就会超出,超出后结果会令人困惑,例如:

        int a = 2147483647*2; //2147483647是int能表示的最大值

a的结果是-2。为什么是-2我们暂不解释,要避免这种情况,我们的结果类型应使用long,但只改为long也是不够的,因为运算还是默认按照int类型进行,需要将至少一个数据表示为long形式,即在后面加L或l,下面这样才会出现期望的结果:

        long a = 2147483647*2L;

另外,需要注意的是,整数相除不是四舍五入,而是直接舍去小数位,例如:

        double d = 10/4;

结果是2而不是2.5,如果要按小数进行运算,需要将至少一个数表示为小数形式,或者使用强制类型转化,即在数字前面加(double),表示将数字看作double类型,如下所示任意一种形式都可以:

          a) double d = 10/4.0;          b) double d = 10/(double)4;

2.小数计算结果不精确

无论是使用float还是double,进行运算时都会出现一些非常令人困惑的现象,比如:

          float f = 0.1f*0.1f;          System.out.println(f);

这个结果看上去应该是0.01,但实际上,屏幕输出却是0.010000001,后面多了个1。换用double看看:

          double d = 0.1*0.1;          System.out.println(d);

屏幕输出0.010000000000000002,一连串的0之后多了个2,结果也不精确。

这是怎么回事?看上去这么简单的运算,计算机计算的结果怎么不精确呢?但事实就是这样,究其原因,我们需要理解float和double的二进制表示。

3.自增(++)/自减(--)

自增/自减是对自己做加1或减1操作,但每个都有两种形式,一种是放在变量后,例如a++、a--,另一种是放在变量前,例如++a、--a。

如果只是对自己操作,这两种形式也没什么差别,区别在于还有其他操作的时候。放在变量后(a++)是先用原来的值进行其他操作,然后再对自己做修改,而放在变量前(++a)是先对自己做修改,再用修改后的值进行其他操作。

相关文章

  • java基本算数运算注意事项

    1:加减乘除注意事项 运算时要注意结果的范围,使用恰当的数据类型。两个正数都可以用int表示,但相乘的结果可能就会...

  • C语言运算符

    运算符的优先级和结合性 运算符的种类 算数运算符有+ - * / % (具有左结合性) 算数运算符注意事项...

  • Java运算符

    Java的运算符,分为四类: 算数运算符、关系运算符、逻辑运算符、位运算符。 算数运算符(9):+ - * / %...

  • Java的运算符

    Java的运算符,分为四类: 算数运算符、关系运算符、逻辑运算符、位运算符。 算数运算符(9):+ - * / %...

  • Java语言入门2

    Java语言中的运算符 算数运算符:+,-,*,/,%,++,-- 关系运算符:>,<,>=,<=,==,!= 布...

  • 算数运算符

    算数运算符 通过算数运算符可以完成基本的加减乘除取余的运算操作 算数运算符有哪些 求和 相减 乘积/ 相除++ 自...

  • 刺猬教你量化投资(二) :运算、控制与结构

    Python的三类运算 Python的基本运算包括三种类型,分别是算数运算、比较运算、赋值运算和逻辑运算。 算数运...

  • Java &、&&、|、||、^、<

    Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,...

  • Java各种&、&&、|、||、^、<<、>>、~、>>>等运算

    Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,...

  • 2019-11-05 算数运算符

    目标 算术运算符的基本使用 01. 算数运算符 算数运算符是 运算符的一种 是完成基本的算术运算使用的符号,用来处...

网友评论

    本文标题:java基本算数运算注意事项

    本文链接:https://www.haomeiwen.com/subject/bzgnyhtx.html