BigDecimal di Java è il tipo di dati più vicino corrispondente al Decimal di C#?
-
21-12-2019 - |
Domanda
Secondo il grafico Qui, il tipo di dati equivalente in Java a C# Decimal
È BigDecimal
.
È davvero così?Che succede con il "grande" preambolo?Non sembra esserci un "SmallDecimal" o "LittleDecimal" (per non parlare di "MediumSizedDecimal") in Java.
Devo dire, però, che quella tabella è stata la cosa più chiara che ho trovato sull'argomento;gli altri collegamenti Qui E Qui E Qui erano per me limpidi quanto il fiume Mississippi dopo una tempesta torrenziale.
Soluzione
Sì, questo è il tipo corrispondente.
Dal momento che stai utilizzando Java dopo C#, non essere troppo sorpreso di trovare piccole sfumature come questa, o essere troppo turbato quando non esiste un modo semplice per fare qualcosa che sia "facile" per fare C#.La prima cosa che mi viene in mente è int & int?- in Java usi solo int e Integer.
C# ha avuto il lusso di seguire Java, quindi molte decisioni sbagliate (quelle che soggettivamente vedo come) sono state corrette/snellite.Inoltre, è utile il fatto che C# sia stato progettato da Andrés Hejlsberg (che è senza dubbio uno dei migliori progettisti di linguaggi di programmazione in vita) e viene regolarmente "aggiornato" a differenza di Java (probabilmente hai assistito a tutte le cose aggiunte a C# dal 2000 - elenco completo)
Altri suggerimenti
È davvero così?
Sono simili ma non identici.Per essere più specifici:la versione Java può rappresentare tutti i valori rappresentati dalla versione C#, ma non è vero il contrario.
Che succede con il "grande" preambolo?
Una Giava BigDecimal
possono avere arbitrariamente molta precisione e quindi può essere arbitrariamente grande.Se vuoi fare un BigDecimal
con mille punti di precisione vai avanti.
Al contrario, un C# decimal
ha una dimensione fissa;occupa 128 bit e fornisce 28 cifre decimali di precisione.
Per essere più precisi:entrambi i tipi ti danno i numeri del modulo
+/- someInteger / 10 ^ someExponent
In C#, someInteger
è un numero intero senza segno a 96 bit e someExponent
è un numero intero compreso tra 0 e 28.
A Giava, someInteger
è di dimensioni arbitrarie e someExponent
è un numero intero a 32 bit con segno.