求两个数最大值
1 2 3
| int res = Math.max(10, 20); System.out.println(res);
|
求两个数最小值
1 2
| int res = Math.min(5, 6); System.out.println(res);
|
返回一个随机数
1 2 3 4 5
| System.out.println(Math.random());;
int res = (int) (Math.random() * 100); System.out.println((res));
|
开根
1 2 3
| double res = Math.sqrt(4); System.out.println(res);
|
大精度小数BigDecimal
金额用什么数据类型
不是 doube,更不是 float,而是用 BigDecimal
对于金融项目,对于金额,误差是不能容忍的
Java 中 float 的精度为 6-7 位有效数字。double 的精度为 15-16 位,BigDecimal 用来对超过16位有效位的数进行精确的运算
常用方法
- add(BigDecimal) BigDecimal 对象中的值相加,然后返回这个对象。
- subtract(BigDecimal) BigDecimal 对象中的值相减,然后返回这个对象。
- multiply(BigDecimal) BigDecimal 对象中的值相乘,然后返回这个对象。
- divide(BigDecimal) BigDecimal 对象中的值相除,然后返回这个对象。
- toString()将 BigDecimal 对象的数值转换成字符串。
- doubleValue()将 BigDecimal 对象中的值以双精度数返回。
- floatValue()将 BigDecimal 对象中的值以单精度数返回。
1 2 3 4 5 6 7 8 9
| double d1 = 11000; double d2 = 0.35;
System.out.println("错误的:" + d1 * d2);
BigDecimal bigDecimal1 = new BigDecimal(11000); BigDecimal bigDecimal2 = BigDecimal.valueOf(0.35);
System.out.println("正确的:" + bigDecimal1.multiply(bigDecimal2));
|