la division de bigdecimal en entier
Je veux diviser un bigdecimal valeur d'un nombre entier.j'ai arrondi les bigdecimal valeur(si elle est 133.333 puis la valeur arrondie est 133).étant donné ci-dessous est mon extrait de code.
v1 = v1.setScale(0, RoundingMode.HALF_UP);
int temp = BigDecimal.valueOf(v1.longValue()).divide(constant1);
la valeur de la constante est de 12. Il affiche un message d'erreur
La méthode de division(BigDecimal) dans le type BigDecimal n'est pas applicable pour les arguments (int)
Quelqu'un peut m'aider à faire la division?
je suis coincé sur ce....svp quelqu'un me dire wat faire... 🙁
Mise à jour de ma réponse.
Mise à jour de ma réponse.
OriginalL'auteur andro-girl | 2011-10-19
Vous devez vous connecter pour publier un commentaire.
Changement
à
Btw, pourquoi ne pas simplement faire quelque chose comme
??
bon, alors ajouter
.intValue()
sur la fin de la ligne si vous ne voulez pas le faire.depuis le résultat voulu (apparemment) est un
int
, vaut mieux le faireint temp = Math.round(v1.longValue()) / constant1;
, ou?Assurez-vous. En supposant que vous avez voulu écrire
doubleValue
, vous avez besoin d'un moule pour que la ligne de compilation sije ne peux pas changer le type de données de temp.bcz c'est à l'aide de quelque part d'autre
OriginalL'auteur aioobe
Vous devez écrire le code comme suit:
La chose à propos de BigDecimal et BigInteger, c'est qu'ils fonctionnent le plus souvent avec les instances de ces classes et non pas avec des types primitifs. Les résultats d'exploitation sont également de nouvelles instances de ces classes.
Une autre remarque: je vous conseille d'utiliser
valueOf
méthode statique au lieu d'un constructeur, car en faisant cela, vous pouvez avoir la possibilité d'éviter la création de nouveaux objets. À l'aide d'un constructeur fait de la création d'un nouvel objet explicite, ce qui n'est pas nécessaire dans ce cas.Jetez un oeil à cette question: stackoverflow.com/questions/4591206/... , il est montré comment faire pour éviter de telles erreurs à l'aide de l'arrondissement.
OriginalL'auteur Malcolm