Java >> Tutoriel Java >  >> Tag >> class

Classe BigInteger et classe BigDecimal en Java

Dans la vraie vie, nous rencontrons fréquemment des nombres, parfois petits mais parfois grands, tandis que dans la programmation, les types de données primitifs ont l'inconvénient de ne pouvoir gérer que des nombres jusqu'à une plage unique qui est petite, mais pour répondre à notre exigence, Java a introduit BigInteger et les classes BigDecimal , ces classes peuvent gérer des nombres jusqu'à une très longue plage car elles gèrent les nombres de manière dynamique contrairement aux types de données primitifs.

Parlons d'abord de la Classe BigInteger :

Classe BigInteger

Cette classe peut être importée par l'instruction suivante :import java.math.BigInteger;

Comme vu ci-dessus Classe BigInteger fait partie du package math.

Considérez le programme :

import java.util.Scanner;
import java.math.BigInteger;

class BigIntegerExample
{
	public static void main(String args[])
	{
		Scanner KB=new Scanner(System.in);
		String a,b;
		System.out.println("Enter First Number :");
		a=KB.nextLine();
		System.out.println("Enter Second Number :");
		b=KB.nextLine();
		BigInteger A=new BigInteger(a);
		BigInteger B=new BigInteger(b);
		BigInteger Sum=A.add(B);
		BigInteger Multiplied=A.multiply(B);
		BigInteger Remain=A.remainder(B);
		System.out.println("Sum Of the two Numbers is :"+Sum);
		System.out.println("Multiplication of the two Numbers is :"+Multiplied);
		System.out.println("Remainder when "+A+"is divided by "+B+" :"+Remain);
	}
}

Sortie

Enter First Number :
142536141253654546456787823232356421653594544646585265116519
Enter Second Number :
556554655656654655556
Sum Of the two Numbers is :142536141253654546456787823232356421654151099302241919772075
Multiplication of the two Numbers is :79329153014055994331638907597080521393268861920828184819191877862617726150729564
Remainder when 142536141253654546456787823232356421653594544646585265116519is divided by 556554655656654655556 :79576899974494740771

Comme nous le savons,
Les chaînes en Java sont également de nature dynamique, ce que nous faisons réellement dans le programme ci-dessus est que nous prenons d'abord l'entrée du nombre dans un format String, puis nous convertissons String en BigInteger format en passant String comme paramètre dans la déclaration suivante.

BigIntegerObjectName=new BigInteger(String);

En outre, il existe des déclarations BigInteger par défaut comme :

BigInteger.ZERO; // A BigInteger Constant equal to 0
BigInteger.ONE;// A BigInteger Constant equal to 1
BigInteger.TEN;// A BigInteger Constant equal to 10

Méthodes utilisées dans la classe BigInteger :

Méthode Type de données primitif (int a,b,c) Classe BigInteger (BigInteger A,B,C)
Ajout c=a+b C=A.add(B)
Multiplication c=a*b C=A.multiplier(B)
Reste c=a%b C=A.reste(B)
Soustraction c=a-b C=A.soustraire(B)

Pour en savoir plus sur les méthodes disponibles dans la classe BigInteger, suivez ce lien vers Javadoc :LINK

Publicité

Classe BigDecimal

Discutons maintenant de l'utilisation simple de la Classe BigDecimal en Java , qui est utilisé pour gérer de grands nombres décimaux, c'est une classe réellement utile si vous avez affaire à des nombres réels.

Considérez le programme :

import java.util.Scanner;
import java.math.BigDecimal;
import java.math.RoundingMode;

class BigDecimalExample
{
	public static void main(String args[])
	{
		Scanner KB=new Scanner(System.in);
		String a,b;
		System.out.println("Enter First Number :");
		a=KB.nextLine();
		System.out.println("Enter Second Number :");
		b=KB.nextLine();
		BigDecimal A=new BigDecimal(a);
		BigDecimal B=new BigDecimal(b);
		BigDecimal Divided=A.divide(B,6,RoundingMode.CEILING);
		System.out.println("Division when "+A+" is divided by "+B+" :"+Divided);
	}
}

Sortie

Enter First Number :
4555616565565656526259652699
Enter Second Number :
62566555645657
Division when 4555616565565656526259652699 is divided by 62566555645657 :72812327905122.270645

Cette classe peut être importée par l'instruction suivante :import java.math.BigDecimal;

Nous importons également la RoundingModeClass , afin de gérer la précision et l'échelle de nos chiffres.

import java.math.RoundingMode;

Comme vu ci-dessus Classe BigDecimal et la classe RoundingMode font également partie du paquet mathématique .

Paramètres généraux dans la méthode BigDecimal :

BigDecimaldivide(BigDecimal divisor, int scale, RoundingModeroundingMode)

Échelle : Nombre total de chiffres après la virgule décimale
RoundingMode : SOL ou PLAFOND etc.

Pour en savoir plus sur les autres méthodes disponibles dans la Classe BigDecimal suivez ce lien vers Javadoc :LINK


Balise Java