Java基础Math类和Arrays类4月打卡day20

举报
java厂长 发表于 2022/04/13 09:19:32 2022/04/13
【摘要】 Java基础Math类和Arrays类4月打卡day20关于作者作者介绍🍓 博客主页:作者主页🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻。1、 数字操作类—Math类在Java.lang.Math类之中定义了所有的于数学...

Java基础Math类和Arrays类4月打卡day20

关于作者

  • 作者介绍


🍓 博客主页:作者主页

🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。

🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻。

1、 数字操作类—Math类

在Java.lang.Math类之中定义了所有的于数学有关的基本公式,在这个类之中所有的方法都是static型的方法,强调一个方法:round(),public static long round(double a),表示四舍五入。

package com.day13.demo;
​
public class MathDemo {
    public static void main(String[] args) {
        System.out.println(Math.round(13.51));
        System.out.println(Math.round(13.5));
        //如果负数小数,没大于0.5都不进位
        System.out.println(Math.round(-13.51));
        System.out.println(Math.round(-13.5));//-13
    }   
}

希望可以准确的保存小数位进行处理。

需要保留几位小数

package com.day13.demo;
class MyMath{
    public static double round(double num, int scale){
        return Math.round(num * Math.pow(10, scale)) / Math.pow(10, scale);
    }
}
public class MathDemo {
    public static void main(String[] args) {
        //1234.457
        System.out.println(MyMath.round(1234.4567, 3));
    }   
}
1.1 随机数—Random()

Java .util.Random的主要主要作用就是产生随机数,下面通过一个代码来观察就行。

网站开发的随机验证码

package com.day13.demo;
​
import java.util.Random;
​
public class RandomDemo {
    public static void main(String[] args) {
        char data [] = new char[]{'a','b','c','d','e'};
        for (int i = 0; i < 4; i++) {
            System.out.print(data[new Random().nextInt(data.length)]);
        }
    }
}
1.2 大数字操作类

如果说现在有两个非常大的数字要进行数学操作,你们认为要怎么做?这个时候数字已经超过了double的范围,那么只能利用字符串来表示,取出每一个字符串变为数字后进行数学计算,这种方式的难度较高,为了解决这种问题,在Java之中提供了两个大数字操作类:java.math包中BigInteger,BigDecimal,而这两个类是属于Number的子类。

1.大整数操作类:BigIntegr

之前已经强调过了,如果数字较大,肯定按照String来处理,所以这一点可以通过Biginteger的构造方法来观察:

构造:public BigInteger(String val);

而且在BigInteger类之中定义了一些基本的数学计算:

加法:public BigInteger add(BigInteger val);

减法:public BigInteger subtract(BigInteger val);

乘法:public BigInteger multiply(BigInteger val);

除法(不保存余数):public BigInteger divide(BigInteger val);

除法(保存余数):public BigInteger divideAndRemainder(BigInteger val)

大数的四则运算

package com.day13.demo;
​
import java.math.BigInteger;
​
public class BigAddDemo {
    public static void main(String[] args) {
        BigInteger bigA = new BigInteger("123712487812974891274891274128947891");
        BigInteger bigB = new BigInteger("43895748395789347589347589398");
        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]);
    }
}

2.大小数操作类:BigDcimal

BigDecimal类表示的是大小数操作类,但是这个类也具备了于之前同样的基本计算方式,而在实际的工作之中,是用这个类最多的情况是进行准确位数的四舍五入操作,如果要完成这一操作需要关心BigDecimal类中的以下定义:

构造:public BigDecimal(double val);

除法:public BigDecimal divide(BigDecimal divisor ,int scale ,int roundingMode);

进位模式:public static final int ROUND_HALF_UP。

四舍五入进位操作

package com.day13.demo;
​
import java.math.BigDecimal;
//大数进位方法
class MyMath1{
    public static double round(double num, int scale){
        return new BigDecimal(num).divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_DOWN).doubleValue();
    }
}
public class BigDecimalDemo {
    public static void main(String[] args) {
        System.out.println(MyMath1.round(2138845.4567, 3));
    }
}

2、Arrays类

排序操作:java.util.Arrays.sort(数组名称),对于Arrays类一直是进行数组排序的操作,类一直进行数组排序的操作,而Arrays类是定义在java.util包下的一个操作类,在这个类之中定义了所有的与数组有关的基本操作:二分查找,拷贝操作,相等判断,填充,变为字符串输出等。

package com.day13.demo;
​
import java.util.Arrays;
​
public class ArraysDemo {
    public static void main(String[] args) {
        int dataA[] = new int []{1,2,3,4,5,6};
        int dataB[] = new int []{1,2,3,4,5,6};
        //数组输出
        System.out.println(Arrays.toString(dataA));
        //两个数组进行比较
        System.out.println(Arrays.equals(dataA,dataB));
        //数组二分法查找
        System.out.println(Arrays.binarySearch(dataA, 4)+1);
    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。