Java运算符概要与数学函数
运算符概要
- 在Java中,使用算术运算符+,-,*,/表示加减乘除运算,当参与/的运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法.整数的求余操作(有时称为取模),用%表示,例如,
15/2
,15%2
,15.0/2
. - 需要注意的是,整数被0除将产生一个异常,而浮点数被0除会得到无穷大或NaN结果.
数学函数
- 在Math类中,包含各种各样的数学函数,在编写不同类别的程序时,可能需要的函数也不同.
- 要想计算一个数值的平方根,可以使用sqrt方法
double x = 4; double y = Math.sqrt(x); System.out.println(y); // 2
- 在Java中,没有幂运算,因此需要借助于Math类的pow方法,语句
double y = Math.pow(x,a);
将y的值设置为x的a次幂.pow方法有两个double类型的参数,其返回结果也是double类型. - floorMod方法的存在是解决一个长期存在的有关整数余数的问题,考虑表达式n
%2
,如果n为偶数,这个表达式为0,如果n为奇数,表达式则为1,当然,除非n是负数.如果n为负,这个表达式则为-1,但是,欧几里得规则中描述:余数总是要大于等于0.因为我们要归一化一个的数,因此采用floorMod方法,该方法总会得到大于0的数.例如:floorMod(position+adjustment,12)
,产生0~11之间的数.但是对于负除数,floorMod会得到负数结果,不过这种情况在实际中很少出现. - Math类提供了一系列的三角函数
Math.sin Math.cos Math.tan Math.atan Math.atan2
- 还有指数以及它的反函数-自然对数以及以10为底的对数
Math.exp Math.log Math.log10
- 最后Java还提供了表示π和e常量的近似值
Math.pi Math.E
数值类型之间的转换
隐式类型转换
- 经常需要将一种数值类型转换为另一种数值类型.
- 实心箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换.
- 当使用两个数值进行二元操作时,例如(n+f,n是整数,f是浮点数),先要将操作数转化为同一类型,然后进行计算.
- 如果两个操作数有一个是double类型,另一个操作数就转换为double类型.
- 否则,如果一个操作数是float类型,另一个操作数会转换为float类型.
- 否则,如果一个操作数是long类型,另一个会转换为long类型.
- 否则,两个操作数都会转化为int类型.
强制类型转换
- 在必要的时候,需要将double类型转换为int类型,在Java中允许进行这种数值之间的类型转换,当然有可能丢失一些信息.在这种情况下,需要通过强制类型转换进行实现,强制类型转换的语法是在圆括号中给出想要转换的类型,后面紧跟的是待转换的变量名.例如
double x=9.997; int nx=(int)x;
这时,变量nx的值为9,强制类型转换通过截断小数部分将浮点值转换为整型.
- 如果对浮点数进行舍入计算,以便得到最接近的整数.那就使用Math.round方法.
double x=9.997; int nx=(int)Math.round(x);
这时,nx的值为10,当调用round函数时,仍然需要进行强制类型转换,其原因是round方法返回的是long类型,由于存在信息丢失的可能性,所以只能采用显式的强制类型转换才能将long转换为int.
相关推荐
kuoying 2020-07-04
seasongirl 2020-06-01
SJCHEN 2020-01-10
秒懂数学 2014-01-26
帅气廖鹏飞 2019-09-05
终身学习的程序猿 2006-11-15
lkrocksthone 2019-04-11
SarahHShen 2019-06-28
秒懂数学 2014-01-26
伊文硕Oracle 2012-07-06
研究视觉研究美 2014-11-19
seasongirl 2012-02-09
只布布倩 2017-11-17
zcwaizcw 2018-05-14
tjuvirus 2018-07-18
袁萌 2009-11-30
cassiePython 2019-04-22