java基本算数运算注意事项
来源:     阅读:543
云上智慧
发布于 2020-04-24 18:16
查看主页

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)是先对自己做修改,再用修改后的值进行其余操作。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
WWDC关于APP启动的建议
javascript 中 的apply,call 和 bind的区别
该为您的HTTPS安全证书续期了
阿里云安全:云服务器的重大防护与用户安全设置
实现马蜂窝旅游头像泡泡动画
首页
搜索
订单
购物车
我的