Java Bigdecimal

Java Bigdecimal
L'uso di formati di dati a punto mobile nei calcoli finanziari è limitato a causa della loro inesattezza. Ecco perché Java ha una classe speciale chiamata BigDecimal per ridurre questi problemi. Il BigDecimal è di numeri interi a 32 bit per gestire i numeri di punti mobili che contengono grandi valori doppi e estremamente piccoli con notevole precisione. La classe BigDecimal offre metodi per manipolazione, conversione del formato, hashing, arrotondamento, confronto e aritmetica. Alcuni metodi di classe di bigdecimal sono implementati di seguito.

Esempio 1:

BigDecimal è efficace nel rappresentare un numero di dimensioni quasi infinite. Il bigdecimal contiene i valori galleggianti più grandi mentre il biginteger prende i valori numerici grandi. Il programma è implementato di seguito per mostrare la funzionalità del BigDecimal in Java.

Abbiamo incluso per la prima volta i pacchetti "bigdecimal" e "biginteger" all'interno del programma Java. Quindi, abbiamo dichiarato l'oggetto di Biginteger come "Val1" e l'oggetto Bigdecimal come "Val2". Abbiamo assegnato il valore intero lungo all'oggetto "val1" della classe biginteger () e il valore del punto galleggiante all'oggetto "Val2" della classe BigDecimal (). Successivamente, abbiamo stampato entrambi i valori per realizzare i risultati.

I risultati dei valori biginteger e bigdecimal sono eseguiti come segue:

Esempio 2:

BigDecimal consente solo numeri interi di precisione arbitraria di numeri a punto fisso. Facciamo un programma Java in cui le operazioni aritmetiche vengono eseguite su due grandi interi decimali significativi.

Abbiamo definito due oggetti bigdecimali che sono etichettati "NUM1" e "NUM2". Questi oggetti bigdecimali sono inizializzati con valori decimali di grandi dimensioni. Quindi, abbiamo applicato l'operazione di aggiunta, sottrazione e moltiplicazione su questi oggetti utilizzando rispettivamente i metodi ADD (), Sottract () e Multiply (). Si noti che il primo oggetto "num1" di bigdecimal chiamato il metodo e il secondo oggetto "num2" è passato come argomento di quel metodo.

I seguenti risultati vengono realizzati applicando i metodi di cui sopra ai valori BigDecimal.

Esempio 3:

L'operazione di confronto non può essere eseguita su valori di bigdecimale utilizzando gli operatori di confronto. AS, BigDecimal è limitato a tipi di dati INT, lunghi e doppi. Java ha un metodo comparatore () integrato per confrontare i valori di bigdecimale.

Abbiamo una dichiarazione "Big1" e "Big2" BigDecimal Object all'interno del metodo principale () della classe Java specificata. Dopo aver dichiarato gli oggetti, impostiamo i valori decimali in essi. Quindi, abbiamo usato il blocco "if-else" nidificato per confrontare l'oggetto bigdecimal usando il metodo comparazione (). Se sia l'oggetto BigDecimal è uguale, allora lo zero viene restituito e l'istruzione di stampa della sezione "if" verrà eseguita. Altrimenti, il metodo comparatore () restituisce il valore "1" quando il bigdecimal contiene valori diversi. Abbiamo verificato i risultati di reso dal metodo comparazione () per i valori decimali forniti nella classe BigDEcimal () tramite istruzione IF-ELSE nidificata.

Il valore del metodo comparativo () è uguale al valore "1" che mostra che i numeri di galleggiante passati nella classe BigDecimal () non sono uguali. Di seguito viene visualizzato il messaggio di stampa "else-if".

Esempio 4:

Java ha un altro bigdecimal incorporato bigdecimal per la conversione del bigdecimal in byte mentre cerca i dati persi. Questo metodo lancia un aritmeticexception quando il bigdecimal ha una parte frazionaria che non è zero o se il risultato è oltre l'intervallo che può essere archiviato da un byte.

Abbiamo utilizzato il metodo ByteValueExact () nel programma sopra. Per questo, abbiamo dichiarato la variabile "bigdec" di bigdecimal. Quindi, abbiamo definito una "b" variabile di byte di tipo. Abbiamo impostato il valore all'interno della classe BigDecimal () che è inizializzata all'interno della variabile "bigdec". Successivamente, abbiamo invocato il byteValueExact () nella variabile "B" per ottenere il valore del byte del valore Bigdecimale. Il valore del byte restituito da questo metodo verrà stampato con l'aiuto del metodo di stampa Java.

Il valore del byte dal metodo ByteValueExact () è lo stesso del valore di ingresso BigDecimal perché il numero non contiene alcun punto decimale.

Esempio 5:

I valori massimi e minimi dai valori BigDecimal specificati possono essere realizzati usando i metodi Max () e Min () in quanto questi metodi sono compatibili con la classe BigDecimal.

Abbiamo generato tre oggetti bigdecimali come "B1", "B2" e "B3" per ottenere il valore minimo e i valori massimi da questi. Insieme alle dichiarazioni di questi oggetti, abbiamo anche creato altri due oggetti "Maxval1" e "Maxval2". Innanzitutto, abbiamo superato i numeri BigDecimal a ciascuno degli oggetti. All'interno del "maxval1", l'oggetto "B1" è chiamato metodo Max () che prende l'oggetto "B2" come parametro. Allo stesso modo, abbiamo impostato il "maxValue2" ma abbiamo distribuito il metodo "min ()" per trovare i valori minimi tra "B1" e "B3". Il metodo Max () ha visualizzato il più grande valore BigDecimal e il metodo Min () ha visualizzato il valore più piccolo di BigDecimal.

Il valore BigDecimal di "B2" contiene il valore massimo rispetto al "B1" che il metodo Max () emette di seguito. Lo stesso è il caso del metodo Min () che visualizza il valore Bigdecimale "B3" perché ha un valore minimo di "B1".

Esempio 6:

Il metodo Pow () di BigDecimal viene utilizzato per ottenere il valore di potenza del valore BigDecimal fornito. Un grande decimale con il valore (questo N) viene restituito dal metodo Pow ().

Abbiamo specificato gli oggetti BigDecimal "BD1" e "BD2". Nell'oggetto "BD1", abbiamo assegnato il valore del bigdecimal che contiene il punto decimale. Quindi, abbiamo applicato il metodo Pow () sull'oggetto "BD1" all'interno dell'oggetto "BD2". Il metodo Pow () è impostato con il valore "3" che restituisce la potenza di "3" per il valore BigDecimal.

Il valore BigDecimal aumentato al potere "3" ha il seguente valore:

Esempio 7:

L'ultimo metodo BigDecimal implementato di seguito è chiamato scala (). Viene utilizzato per ottenere il valore di scala del bigdecimale fornito. La scala di un valore zero o positivo è determinata dal numero di cifre posizionate a destra del punto decimale. Quando un valore è negativo, il numero non scalato viene moltiplicato per la potenza del valore "10" negazione della negazione della sua scala.

Abbiamo dato un valore fluttuante positivo al bigdecimale che viene inizializzato nella variabile "deci1". D'altra parte, abbiamo impostato il valore float negativo del bigdecimal nell'oggetto "deci2". Quindi, abbiamo chiamato il metodo "Scale ()" per l'oggetto Deci1 e DECI2 all'interno delle variabili appena dichiarate "S1" e "S2" per ottenere la portata di questi bigdecimals.

Il valore decimale sul lato destro del bigdecimale positivo è "1", quindi la scala è anche "1". La scala del bigdecimal negativo è "3".

Conclusione

Java BigDecimal è un metodo per rappresentare con precisione il numero. I pochi metodi associati al bigdecimal sono esplorati in questo documento. BigDecimal impedirebbe la diversa scala del doppio valore quando si tratta del doppio più piccolo può essere rimosso dalla somma a causa della variazione di scala. Questo è un vantaggio della classe BigDecimal, ma lo svantaggio di BigDecimal è che rende più complicato creare algoritmi.