Résumé d'apprentissage Java: 35 (classe d'opération numérique)

Classe d'opérations numériques Java

Un. Cours de mathématiques

La classe Math est une classe d'opération dédiée aux calculs mathématiques, qui fournit une série de méthodes de calcul mathématiques. Toutes les méthodes fournies dans la classe Math sont des méthodes statiques, elles peuvent donc être appelées directement par le nom de la classe.

Exemple: observer l'opération d'arrondi

package Project.Study.MathClass;

public class Test1 {
    public static void main(String[]args){
        System.out.println(Math.round(15.5));
        System.out.println(Math.round(-15.51));
        System.out.println(Math.round(-15.4));
        System.out.println(Math.round(-15.45));
        System.out.println(Math.round(-15.6));
        System.out.println(Math.round(15.46));
        System.out.println(Math.round(-15.5));
    }
}
//结果:
//16
//-16
//-15
//-15
//-16
//15
//-15

À partir du programme ci-dessus, nous pouvons constater que seule la décimale des données d'opération est supérieure à 0,5 et que la décimale est inférieure ou égale à 0,5.

Exemple: implémentez l'opération d'arrondi pour le nombre de chiffres spécifié

package Project.Study.MathClass;

public class Test2 {
    public static void main(String[]args){
        System.out.println(round(-15.678139,2));
    }
    /**
     * 四舍五入操作,可以保留指定长度的小数位数
     * @param num 要进行四舍五入操作的数字
     * @param scale 保留的小数位
     * @return 四舍五入后的数据
     */
    public static double round(double num,int scale){
        //Math.pow()的方法作用是进行10的N次方的计算
        return Math.round(num*Math.pow(10.0,scale))/Math.pow(10.0,scale);
    }
}
//结果:
//-15.68

Deux. Classe aléatoire

La classe Random est une classe d'opération dédiée à la génération de nombres aléatoires .

Méthodes courantes de la classe Random:

Non. La méthode Tapez La description
1 public Random () La structure Créer une nouvelle instance aléatoire
2 public Random (longue graine) La structure Créer une nouvelle instance aléatoire et définir un numéro de départ
3 public int nextInt (int lié) Ordinaire Génère un entier aléatoire non supérieur à la limite spécifiée

Exemple: Générez 10 entiers positifs non supérieurs à 100

package Project.Study.RandomClass;

import java.util.Random;

public class Test1 {
    public static void main(String[]args){
        Random rand=new Random();
        for(int x=0;x<10;x++){
            System.out.print(rand.nextInt(100)+"、");
        }
    }
}
//结果:
//89、93、9、96、33、76、10、80、41、87、

Exemple: système de sélection des numéros (36 sur 7)

package Project.Study.RandomClass;

import java.util.Random;

public class Test2 {
    public static void main(String[]args){
        Random rand=new Random();
        int[] data =new int[7]; //开辟一个7个元素的数组,保存生成数字
        int foot=0;             //数组操作脚标
        while(foot<7){
            int t=rand.nextInt(37);//生成一个不大于37的随机数
            if(!isRepeat(data,t)){  //重复的话就不执行
                data[foot++]=t;     //保存数据
            }
        }
        java.util.Arrays.sort(data);//排序
        for (int datum : data) {
            System.out.print(datum + "、");
        }
    }
    /**
     * 此方法主要是判断是否存在重复内容
     * @param temp 指的是已经保存的数据
     * @param num 新生成的数据
     * @return 如果存在返回true,否则返回false
     */
    public static boolean isRepeat(int[] temp, int num){
        if(num==0){         //没有必要判断了
            return true;    //直接返回,随后的代码都不再执行
        }
        for (int i : temp) {
            if (i == num) {
                return true;//表示后面的数据都不再进行判断
            }
        }
        return false;
    }
}
//结果:
//2、9、12、13、18、28、31、

3. Grande opération numérique

1. Grande classe d'opérations entières: BigInteger

Les grands entiers peuvent fonctionner sur des données entières infinies.

Méthode d'opération de base de la classe BigInteger:

Non. La méthode Tapez La description
1 public BigInteger (String val) La structure Instancier un objet BigInteger
2 add public BigInteger (BigInteger val) Ordinaire Opération d'addition
3 soustrait public BigInteger (BigInteger val) Ordinaire Opération de soustraction
4 multiplication BigInteger publique (BigInteger val) Ordinaire Opération multipliée
5 division BigInteger publique (BigInteger val) Ordinaire Opération de division (pas de reste)
6 public BigInteger [] divideAndRemainder (BigInteger val) Ordinaire Opération de division (conserver le reste), le premier élément du tableau est le quotient, le deuxième élément est le reste

Exemple: effectuer des calculs de grands nombres entiers

package Project.Study.BigIntegerClass;

import java.math.BigInteger;

public class Test1 {
    public static void main(String[]args){
        BigInteger bigA=new BigInteger("123456789013213214214");	//大数字A
        BigInteger bigB=new BigInteger("2324342314132432432");		//大数字B
        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]);
    }
}
//结果:
//加法操作:125781131327345646646
//减法操作:121132446699080781782
//乘法操作:286955838670331461717477157288896988448
//除法操作:53
//商:53,余数:266646364194295318

2. Classe d'opération de grand et petit nombre: BigDecimal

L'opération la plus courante utilisant la classe BigDecimal consiste à calculer le nombre exact d'arrondi.

Utilisez BigDecimal pour terminer l'opération d'arrondi:

Non. Méthodes et constantes Tapez La description
1 public static final int ROUND_HALF_UP Constante Porter vers le haut
2 BigDecimal public (double val) La structure Passez une double donnée
3 public BigDecimal divide (diviseur BigDecimal scale échelle int , int roundingMode) Ordinaire L'opération de division, la signification de référence est la suivante: BigDecimal divisor: dividende, int scale: longueur des décimales réservées; int roundingMode: mode de report

Exemple: opération d'arrondi précise et complète

ckage Project.Study.BigDecimalClass;

import java.math.BigDecimal;

class MyMath{
    public static double round(double num,int scale){
        BigDecimal big=new BigDecimal(num);				//将数据封装在BigDecimal类中
        BigDecimal result= big.divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP);								//除法计算
        return result.doubleValue();					//Number类的方法
    }
}
public class Test1 {
    public static void main(String[]args){
        System.out.println(MyMath.round(15.5,0));
        System.out.println(MyMath.round(-15.5,0));
        System.out.println(MyMath.round(1168.4344343,4));
    }
}
//结果:
//16.0
//-16.0
//1168.4344
49 articles originaux publiés · A aimé 25 · Visites 1511

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45784666/article/details/105231852
conseillé
Classement