1.BigInteger大整数运算
可以让超过Integer的整数进行运算
package com.lemon;
import java.math.BigInteger;
import java.util.Arrays;
public class BigIntegerDemo {
public static void main(String[] args) {
String str1 = "843523532423423324234";
String str2 = "234324345435345345";
//大整数运算
BigInteger b1 = new BigInteger(str1);
BigInteger b2 = new BigInteger(str2);
System.out.println("b1 + b2 = " + b1.add(b2));//加法
System.out.println("b1 - b2 = " + b1.subtract(b2));//减法
System.out.println("b1 * b2 = " + b1.multiply(b2));//乘法
System.out.println("b1 / b2 = " + b1.divide(b2));//除法
System.out.println("b1 % b2 = " + b1.remainder(b2));//取余
//除法and取余
System.out.println("[除,求余] =" + Arrays.toString(b1.divideAndRemainder(b2)));
}
}
2.BigDeciaml(大浮点数计算)
由于计算的时候,float类型和double很容易丢失精度,为了能精确的表示、计算浮点数,java提供了BigDeciaml,不可变的、任意精度的有符号十进制数。
String str3 = "8432.214325465453453434";
String str4 = "323.345646457653757567656";
BigDecimal b3 = new BigDecimal(str3);
BigDecimal b4 = new BigDecimal(str4);
//加法
System.out.println("b3 + b4 = " + b3.add(b4));
//减法
System.out.println("b3 - b4 = " + b3.subtract(b4));
//乘法
System.out.println("b3 * b4 = " + b3.multiply(b4));
//除法 10为保留的小数位数,HALF_DOWN为一种小数模式
System.out.println("b3 / b4 = " + b3.divide(b4,10,java.math.RoundingMode.HALF_DOWN));
3.DecimalFormat(处理小数格式)
快速将数字格式化
double pi = 3.1415926;
//取一位整数 3
System.out.println(new DecimalFormat("0").format(pi));
//取一位整数和两位小数 3.14
System.out.println(new DecimalFormat("0.00").format(pi));
//取两位整数和三位小数 03.142
System.out.println(new DecimalFormat("00.000").format(pi));
//取所有整数部分 3
System.out.println(new DecimalFormat("#").format(pi));
//以百分比方式计数,并取两位小数 314.16%
System.out.println(new DecimalFormat("#.##%").format(pi));
long num = 653454353;
//三位一个逗号 653,454,353
System.out.println(new DecimalFormat("###,###").format(num));
其他用法 参考API文档...