2023/7/25

发布时间 2023-07-25 11:20:44作者: 伐木工熊大

今天了解了两种大数类,一种是Biginteger,一种是BigDecimal。前者只能运算整数,后者可以运算小数

package 大数类;
import java.math.BigInteger;
public class BigInteger类 {
    public static void main(String[] args)
    {
        BigInteger a1=new BigInteger("12345678987654321");//支持的最大值为2^31-1
        BigInteger a2=new BigInteger("98765432123456789");
        System.out.println(a1.add(a2));//
        System.out.println(a2.subtract(a1));//
        System.out.println(a1.multiply(a2));//
        System.out.println(a2.divide(a1));//除,整型运算无小数
        System.out.println(a2.remainder(a1));//求余
        System.out.println(a2.divideAndRemainder(a1)[0]);//返回一个数组,数组中第一个值为商第二个为余数
        //前面这些的参数只能是Bigteger类型,当然还有部分其他的方法也是,没有列出来
        System.out.println(a2.pow(2));//求次方
        System.out.println(a2.negate());//相反数
    }
}
package 大数类;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimal类 {
    public static void main(String[] args)
    {
        BigDecimal a1=new BigDecimal(314159265358.77932384626);//只能直接录入浮点数或者字符串
        BigDecimal a2=new BigDecimal("987654321.123456789");
        System.out.println(a1.add(a2));
        System.out.println(a1.subtract(a2));
        System.out.println(a1.multiply(a2));
        System.out.println(a1.divide(a2,5,RoundingMode.HALF_UP));//参数,小数点位数,近似处理模式
    }
}

然后就是System类和Scanner类

前者主要的功能有输入流、输出还有计时等,后者就是扫描仪,主要功能就是输入

package System类;

public class 计时 {
    public static void main(String[]args)
    {
        String b="hello";
        String c="world";
        String d="hello";
        long a=System.currentTimeMillis();//返回此时的运行时间,返回值为long类型
        d+=b;
        long e=System.currentTimeMillis();
        b.concat(c);
        long f=System.currentTimeMillis();
        System.out.println((e-a)+" "+(f-e));//用时都太短了无法比较
    }
}