数字处理类

一、数字格式化
  • DecimalFormat类
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。
public static void main(String[] args) {
    double pi = 3.1415927;//圆周率
    System.out.println(new DecimalFormat("0").format(pi));  //取一位整数(3)
    System.out.println(new DecimalFormat("0.00").format(pi));   //取一位整数和两位小数(3.14)
    System.out.println(new DecimalFormat("00.000").format(pi));  //取两位整数和三位小数,整数不足部分以0填补(03.142)
    System.out.println(new DecimalFormat("#").format(pi));  //取所有整数部分(3)
    System.out.println(new DecimalFormat("#.##%").format(pi));  //以百分比方式计数,并取两位小数(314.16%)
}
 
二、数学运算
Math数学运算类中提供了众多数学函数方法
  • 常用的数学运算方法
    • 三角函数方法
    • 指数函数方法
    • 取整函数方法
public static void main(String[] args) {
    double pi = 3.1415927;//圆周率
    System.out.println(Math.ceil(pi));  //向上取整
    System.out.println(Math.floor(pi));   //向下取整
    System.out.println(Math.rint(pi));  //返回与参数最接近的整数,如果同样接近则返回偶数
    //...
}
    • 取最大值、最小值、绝对值函数方法
public static void main(String[] args) {
    System.out.println(Math.max(4,9));  //最大值
    System.out.println(Math.min(4,9));   //最小值
    System.out.println(Math.abs(-7));  //绝对值
    //...
}
 
三、随机数
Java中主要提供了两种方式产生随机数
    1. Math类的random()方法
    2. Random类
  • Math.random()
//返回一个0~1之间的double型随机数
System.out.println(Math.random()); //x 比如:0.015764032150502705
   
(int)(Math.random()*n);    //返回大于0小于n的随机数
m+(int)(Math.random()*n);    //返回大于等于m且小于m+n的随机数
 
//产生2到32之间的随机数
public static void main(String[] args) {
    int rangeMin = 2;
    int rangeMax = 32;
    int random = rangeMin + (int)(Math.random() * (rangeMax - rangeMin));
    System.out.println(random);
    
}
 
//使用random方法也可以随机生成字符,比如生成a~z之间的字符
(char)('a' + Math.random() * ('z' - 'a' + 1));
 
public static void main(String[] args) {
    System.out.println("任意小写字符" + (char)('a' + Math.random() * ('z' - 'a' + 1)));
    System.out.println("任意大写字符" + (char)('A' + Math.random() * ('Z' - 'A' + 1)));
}
  • Random类
//通过实例化一个Random对象创建一个随机数生成器
Random r = new Random();
 
public static void main(String[] args) {
    Random r = new Random();
    System.out.println("随机产生一个整数" + r.nextInt());
    System.out.println("随机产生一个0到9的整数" + r.nextInt(10));
    System.out.println("随机产生一个布尔型的值" + r.nextBoolean());
    System.out.println("随机产生一个双精度型的值" + r.nextDouble());
    System.out.println("随机产生一个浮点型的值" + r.nextFloat());
}
 
四、大数字运算
Java中提供了两个大数字操作类用于高精度计算
    1. java.math.BigInteger
    2. java.math.BigDecimal
  • BigInteger
BigInteger支持任意精度的整数,在BigInteger类中封装了多种操作,比如加、减、乘、除、绝对值、相反数、最大公约等
BigInteger n = new BigInteger("2");    //将十进制的2转换为BigInteger形式,参数的双引号不能省略,因为参数是以字符串的形式存在的
 
public static void main(String[] args) {
    BigInteger bigInstance = new BigInteger("4");   //实例化一个大数字
    System.out.println("加法操作:" + bigInstance.add(new BigInteger("2")));
    System.out.println("减法操作:" + bigInstance.subtract(new BigInteger("2")));
    System.out.println("乘法操作:" + bigInstance.multiply(new BigInteger("2")));
    System.out.println("除法操作:" + bigInstance.divide(new BigInteger("2")));
    System.out.println("除以3的商:" + bigInstance.divideAndRemainder(new BigInteger("3"))[0]);
    System.out.println("除以3的余数:" + bigInstance.divideAndRemainder(new BigInteger("3"))[1]);
    //...
}
  • BigDecimal
BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值
public static void main(String[] args) {
    BigDecimal bigDecimal = new BigDecimal("4");
    System.out.println("加法操作:" + bigDecimal.add(new BigDecimal("2")));
    System.out.println("减法操作:" + bigDecimal.subtract(new BigDecimal("2")));
    System.out.println("乘法操作:" + bigDecimal.multiply(new BigDecimal("2")));
    System.out.println("除法操作,商小数点后保留4位,并对结果进行四舍五入操作:" + bigDecimal.divide(new BigDecimal("3"), 4, BigDecimal.ROUND_HALF_UP)); //1.3333
    //...
}
 
 
原文地址:https://www.cnblogs.com/duomen/p/13245515.html