0%

Math类

求两个数最大值

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
//返回一个[0 1)  随机数
System.out.println(Math.random());;
//返回0到100之间的随机整数
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;
// 错误的:3849.9999999999995
System.out.println("错误的:" + d1 * d2);

BigDecimal bigDecimal1 = new BigDecimal(11000);
BigDecimal bigDecimal2 = BigDecimal.valueOf(0.35);
// multiply 乘法;正确的:3850.00
System.out.println("正确的:" + bigDecimal1.multiply(bigDecimal2));
↓赏一个鸡腿... 要不,半个也行↓