Java中的算数运算

来源:互联网 发布:互动投影软件1.1 编辑:程序博客网 时间:2024/04/30 08:09

运算符

对变量进行操作的符号就是运算符。
java中根据运算符的操作数的数量可分为:单目运算符,双目运算符和三目运算符(也可以称为一元运算符,二元运算符,三元运算符)

单目运算符:++ -- !
双目运算符:+ - * / % & && | || == != = += -= *= /= %= << >> > < >= <=
三目运算符:?:

算术运算符

算数运算符有一下几种:

+ //加法运算符(双目)- //减法运算符(双目)* //乘法运算符(双目)/ //除法运算符(双目)% //取余运算符(双目)++ //自增运算符(单目)-- //自减运算符(单目)

加减法运算

int a = 10 + 5;int b = 10 - 5;

减法运算时可能遇到两个小数相减,结果与正常的计算结果不同的情况,比如 2.0-1.1,在我们数学计算中结果应该是0.9,而我们程序计算的结果是0.8999999999999999(1)

乘除法运算

int c = 10 * 5;int d = 10 / 5;

进行除法运算时,两个整数相除,结果依然是整数,如果计算结果是小数,返回的是向零取整之后的结果(不是四舍五入)
例如:10/4=2,-10/4=-2,10/(-4)=-2

取余运算

int e = 10 % 5;

取余运算表示获取两个数相除时的余数

自增自减

int f = 10;int g = 5;int h = f++;int i = g--;int j = ++f;int k = --g;

自增自减运算符表示将变量本身增加或减少1,分为前自增自减和后自增自减,区别就是前自增自减先执行自增自减,再返回值,后自增自减是先返回值,再自增自减。
例如:示例中的 int h = f++;,执行此行代码前,f=10,执行此行代码时,先将f赋值给h,再自增,即 h = 10,f = 11;
int j = ++f;,执行此行代码前,f=11,执行此行代码时,f先自增,再把自增后的结果赋值给j,即 f = 12,j = 12;

试判断以下代码输出的结果:

int a = 5;int x = 0;x = ++a+1;x = ++x+a+++1;System.out.println("x = " + x);System.out.println("a++ = " + a++);

输出结果:
15
7




注释:
(1) 这是由于在计算机中,小数的存储形式的缘故,小数往往不能被准确的转换成二进制,而是采用了无限接近于准确值的方法,所以两个二进制小数做减法可能发生错误.

我们通常采用的解决办法是

BigDecimal d1 = new BigDecimal("2.0");BigDecimal d2 = new BigDecimal("1.1");d1.subtract(d2);System.out.println(d2);
0 0