Java温故而知新-Runtime、四舍五入、Random、大数字处理

107 篇文章 1 订阅

Runtime

在这里插入图片描述
在这里插入图片描述

package com.yootk.demo;
public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        Runtime runtime = Runtime.getRuntime(); // 获取Runtime类的对象实例
        // 每当通过Runtime启动了一个进程之后实际上哦度会返回有一个进程对象
        Process process = runtime.exec("notepad.exe") ; // 执行Windows系统中的命令
        Thread.sleep(2000); // 运行2秒的进程
        process.destroy(); // 销毁进程
    }
}

常规四舍五入定义

package com.yootk.util;

/**
 * 该类是一个自定义的数学工具类,可以弥补Math类的不足
 * @author 李兴华
 */
public class MathUtil {
    private MathUtil() {}   // 不存在成员属性,构造方法私有化
    /**
     * 进行准确位数的四舍五入的处理操作
     * @param num 表示要进行处理的数字
     * @param scale 表示要保留的小数位数
     * @return 四舍五入处理后的结果
     */
    public static double round(double num, int scale) {
        return Math.round(num * Math.pow(10.0, scale)) / Math.pow(10.0, scale);
    }
}

package com.yootk.demo;
import com.yootk.util.MathUtil;
public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        System.out.println("【四舍五入】" + MathUtil.round(15.3829489, 3));    // 15
    }
}

Random

在这里插入图片描述

package com.yootk.demo;

import java.util.Random;

public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        Random random = new Random() ;  // 随机数类
        for (int x = 0 ; x < 10 ; x ++) {
            System.out.print(random.nextInt(100) + "、");
        }
    }
}

彩票生成

package com.yootk.demo;

import java.util.Arrays;
import java.util.Random;
class LotteryTicket {   // 彩票工具类
    // 因为随机数字生成的时候会存在有0,或者会存在有重复的数据,那么数组的索引必须单独控制
    private int index ; // 手工控制生成索引
    private int [] data ; // 保存最终生成的彩票数据
    private Random rand = new Random() ;
    public LotteryTicket() {
        this.data = new int[7] ; // 动态初始化
    }
    public void random() {  // 随机生成彩票数据
        while (this.index < this.data.length) { // 还需要持续生成
            int code = this.rand.nextInt(37) ; // 1 ~ 36为彩票数据的生成范围
            if (this.isExists(code)) {  // 检测数据是否可用
                this.data[this.index ++] = code ; // 保存生成的数值
            }
        }
    }
    private boolean isExists(int code) {
        if (code == 0) {    // 不判断0
            return false ; // 表示该数值不可用
        }
        for (int temp : this.data) {
            if (temp == code) {
                return false ; // 表示该数值不可用
            }
        }
        return true ; // 可用
    }
    public int[] getData() {
        Arrays.sort(this.data); // 数组排序
        return data;
    }
}
public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        LotteryTicket lotteryTicket = new LotteryTicket() ;
        lotteryTicket.random(); // 随机生成彩票数据
        for (int temp : lotteryTicket.getData()) {
            System.out.print(temp + "、");
        }
    }
}

大数字处理

在这里插入图片描述

BigInteger

package com.yootk.demo;

import java.math.BigInteger;

public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        BigInteger bigA = new BigInteger("2378902389023") ; // 大数字类
        BigInteger bigB = new BigInteger("723782378") ; // 大数字类
        System.out.println("【加法计算】" + bigA.add(bigB));
        System.out.println("【减法计算】" + bigA.subtract(bigB));
        System.out.println("【乘法计算】" + bigA.multiply(bigB));
        System.out.println("【除法计算】" + bigA.divide(bigB));
        // 当前给定的两个数字类对象是不可能进行整除处理的,所以可以采用余数的形式进行除法计算
        BigInteger result [] = bigA.divideAndRemainder(bigB) ; // 计算商和余数
        System.out.println("【除法计算】商:" + result[0] + "、余数:" + result[1]);
    }
}

BigDecimal

在这里插入图片描述

四则运算

package com.yootk.demo;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        BigDecimal bigA = new BigDecimal("2378902389023.2323231") ; // 大数字类
        BigDecimal bigB = new BigDecimal("723782378.7237238") ; // 大数字类
        System.out.println("【加法计算】" + bigA.add(bigB));
        System.out.println("【减法计算】" + bigA.subtract(bigB));
        System.out.println("【乘法计算】" + bigA.multiply(bigB));
        System.out.println("【除法计算】" + bigA.divide(bigB, RoundingMode.HALF_UP));
    }
}

四舍五入

package com.yootk.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 该类是一个自定义的数学工具类,可以弥补Math类的不足
 * @author 李兴华
 */
public class MathUtil {
    private MathUtil() {}   // 不存在成员属性,构造方法私有化
    /**
     * 进行准确位数的四舍五入的处理操作
     * @param num 表示要进行处理的数字
     * @param scale 表示要保留的小数位数
     * @return 四舍五入处理后的结果
     */
    public static double round(double num, int scale) {
        return Math.round(num * Math.pow(10.0, scale)) / Math.pow(10.0, scale);
    }
    public static double round2(double num, int scale) {
        return new BigDecimal(num).divide(new BigDecimal(1), scale, RoundingMode.HALF_UP).doubleValue() ;
    }
}


package com.yootk.demo;

import com.yootk.util.MathUtil;

public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        System.out.println(MathUtil.round2(19.56789, 2));
    }
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值