Comment nous convertissons BigDecimalen Doublejava? J'ai une exigence où nous devons utiliser Double comme argument, mais nous devenons BigDecimaldonc je dois convertir BigDecimalen Double.
Lisez toujours la documentation avant de poser une question. Vous constaterez souvent que votre question est répondue. Voir doubleValue(). (Astuce: pour trouver la documentation d'une classe spécifique, recherchez simplement sur Google le nom de la classe, suivi de java. Par exemple, pour trouver cette documentation, j'ai recherché "BigDecimal Java")
Justin
1
"J'ai une exigence où nous devons utiliser Double comme argument" Faites modifier l'exigence. Il ne BigDecimalsert à rien de l'utiliser à moins que vous ne l' utilisiez de bout en bout. Cette exigence compromet la précision; peut compromettre la conformité réglementaire; et peut constituer une négligence pouvant donner lieu à une action.
Marquis de Lorne
Pourquoi utilisez-vous Doubleet non double. Est-ce un champ qui peut l'être null?
Peter Lawrey
@EJP Utiliser doublen'est pas si mal, mais comme il a plus de 15 chiffres de précision de représentation, ce qui est plus que ce dont la plupart des programmes ont besoin, mais je conviens qu'il ne sert à rien d'utiliser BigDecimal de temps en temps car vous êtes plus susceptible d'ajouter des bogues / complexité.
Peter Lawrey
Réponses:
227
Vous devez utiliser la doubleValue()méthode pour obtenir la valeur double d'un objet BigDecimal.
BigDecimal bd;// the value you getdouble d = bd.doubleValue();// The double you want
Salut, j'ai utilisé la même chose, mais le problème est que les deux anser sont différents, ma sortie décimale était 13555261857.79 et une fois convertie pour doubler son 1.355526185779E10 .. Comment obtenir la même sortie après la conversion décimale en double
user13926345
@ user13926345 - Les deux sont les mêmes valeurs. Juste que le premier résultat est la représentation normale de la valeur et l'autre est la représentation scientifique .
SudoRahul
35
Vous pouvez convertir BigDecimalen doubleutilisant .doubleValue(). Mais croyez-moi, ne l'utilisez pas si vous avez des manipulations de devises. Elle doit toujours être effectuée BigDecimaldirectement sur les objets. La perte de précision dans ces calculs pose de gros problèmes de temps dans les calculs liés aux devises.
new BigDecimal(2).doubleValue()
doubleValue()
. (Astuce: pour trouver la documentation d'une classe spécifique, recherchez simplement sur Google le nom de la classe, suivi de java. Par exemple, pour trouver cette documentation, j'ai recherché "BigDecimal Java")BigDecimal
sert à rien de l'utiliser à moins que vous ne l' utilisiez de bout en bout. Cette exigence compromet la précision; peut compromettre la conformité réglementaire; et peut constituer une négligence pouvant donner lieu à une action.Double
et nondouble
. Est-ce un champ qui peut l'êtrenull
?double
n'est pas si mal, mais comme il a plus de 15 chiffres de précision de représentation, ce qui est plus que ce dont la plupart des programmes ont besoin, mais je conviens qu'il ne sert à rien d'utiliser BigDecimal de temps en temps car vous êtes plus susceptible d'ajouter des bogues / complexité.Réponses:
Vous devez utiliser la
doubleValue()
méthode pour obtenir la valeur double d'un objet BigDecimal.la source
Vous pouvez convertir
BigDecimal
endouble
utilisant.doubleValue()
. Mais croyez-moi, ne l'utilisez pas si vous avez des manipulations de devises. Elle doit toujours être effectuéeBigDecimal
directement sur les objets. La perte de précision dans ces calculs pose de gros problèmes de temps dans les calculs liés aux devises.la source
Utilisez la méthode doubleValue présente dans la classe BigDecimal :
Convertit ceci
BigDecimal
en un fichierdouble
.la source