Math 类
案例:
import java.lang.*;
public class TestMath {
public static void main(String[] args) {
System.out.println(Math.abs(-2.0)); //绝对值
System.out.println(Math.sqrt(64.0)); //立方根
System.out.println(Math.max(56,78)); //两者之间较大的
System.out.println(Math.min(56,78)); //两者之间较小的
System.out.println(Math.random()); //随机数
System.out.println(Math.pow(2,10)); //幂
System.out.println(Math.ceil(18.36)); //向上取整
System.out.println(Math.floor(18.66)); //向下取整
System.out.println(Math.round(11.5)); //四舍五入
System.out.println(Math.round(-11.5)); //四舍五入
}
}
绝对值:2.0
立方根:8.0
两者之间较大的:78
两者之间较小的:56
随机数:0.8657276690731889
幂:1024.0
向上取整:19.0
向下取整:18.0
四舍五入:12
四舍五入:-11
Math类的round方法
它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,
所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。
其他方法:
sin(double a) 返回角的三角正弦。
cos(double a) 返回角的三角余弦。
tan(double a) 返回角的三角正切。
log(double a) 返回 double 值的自然对数(底数是 e)。
log10(double a) 返回 double 值的底数为 10 的对数。
acos(double a) 返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。
asin(double a) 返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。
atan(double a) 返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。
atan2(double y, double x) 将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。
BigInteger 和 BigDecimal
概述
BigDecimal:常用来解决精确的浮点数运算。
BigInteger:常用来解决超大的整数运算。
常用方法:
- add(BigDecimal bd): 做加法运算
- substract(BigDecimal bd) : 做减法运算
- multiply(BigDecimal bd) : 做乘法运算
- divide(BigDecimal bd) : 做除法运算
- divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用
- setScale(保留位数,舍入方式):同上
- pow(int n):求数据的几次幂
案例:
public class test04 {
public static void main(String[] args) {
BigInteger bi = new BigInteger("1243324112234324324325235245346567657653");
BigDecimal bd = new BigDecimal("12435.351");
BigDecimal bd2 = new BigDecimal("11");
System.out.println(bi);
// System.out.println(bd.divide(bd2));
System.out.println(bd.divide(bd2, BigDecimal.ROUND_HALF_UP));
System.out.println(bd.divide(bd2, 25, BigDecimal.ROUND_HALF_UP));
}
}
如果这个数除不尽
public class test05 {
public static void main(String[] args) {
BigInteger bi = new BigInteger("1243324112234324324325235245346567657653");
BigDecimal bd = new BigDecimal("12435.351");
BigDecimal bd2 = new BigDecimal("11");
System.out.println(bd.divide(bd2));
}
}