Pourquoi le code suivant déclenche-t-il l'exception indiquée ci-dessous? BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. Exception: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Je dois calculer quelques variables à virgule flottante et mon collègue me suggère de les utiliser à la BigDecimalplace doublecar ce sera plus précis. Mais je veux savoir de quoi il s'agit et comment en tirer le meilleur parti BigDecimal?
J'essaie d'arrondir les valeurs BigDecimal à deux décimales près. j'utilise BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); mais il ne fait pas toujours ce que je veux: rounded 0.819 to 0.82 rounded 1.092 to 1.1 rounded 1.365 to 1.4 // should be 1.37 rounded 2.730 …
J'ai cette petite méthode folle qui convertit les valeurs BigDecimal en chaînes agréables et lisibles. private String formatBigDecimal(BigDecimal bd){ DecimalFormat df = new DecimalFormat(); df.setMinimumFractionDigits(3); df.setMaximumFractionDigits(3); df.setMinimumIntegerDigits(1); df.setMaximumIntegerDigits(3); df.setGroupingSize(20); return df.format(bd); } Cependant, il produit également un soi-disant séparateur de regroupement ","qui fait sortir toutes mes valeurs comme ceci: xxx,xxx …
J'ai le code suivant en Java; BigDecimal price; // assigned elsewhere if (price.compareTo(new BigDecimal("0.00")) == 0) { return true; } Quelle est la meilleure façon d'écrire la condition if?
J'ai une collection de BigDecimals (dans cet exemple, a LinkedList) que je voudrais ajouter ensemble. Est-il possible d'utiliser des flux pour cela? J'ai remarqué que la Streamclasse a plusieurs méthodes Stream::mapToInt Stream::mapToDouble Stream::mapToLong Chacun d'eux a une sum()méthode pratique . Mais, comme nous le savons, floatet l' doublearithmétique est presque …
Considérez la classe de test simple: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 …
Je veux faire des sommes simples avec des valeurs monétaires exprimées en BigDecimaltype. BigDecimal test = new BigDecimal(0); System.out.println(test); test.add(new BigDecimal(30)); System.out.println(test); test.add(new BigDecimal(45)); System.out.println(test); Evidemment je ne comprends pas bien l' BigDecimalarithmétique, voir la sortie derrière. Test 0 0 0 Quelqu'un peut m'aider?
Quelle est la différence entre ces deux appels? (Y a-t-il?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
J'ai la méthode Hibernate qui me renvoie un BigDecimal. J'ai une autre méthode API à laquelle je dois transmettre ce numéro mais elle accepte Integer comme paramètre. Je ne peux pas modifier les types de retour ou les types de variables des deux méthodes. Maintenant, comment convertir le BigDecimal en …
Comment définir le séparateur de milliers en Java? J'ai une représentation String d'un BigDecimal que je souhaite formater avec un séparateur de milliers et retourner sous forme de chaîne.
J'essaie de lire certaines valeurs BigDecimal de la chaîne. Disons que j'ai cette chaîne: "1,000,000,000.999999999999999" et que je veux en tirer un BigDecimal. Quelle est la manière de procéder? Tout d'abord, je n'aime pas les solutions utilisant des remplacements de chaînes (en remplaçant des virgules, etc.). Je pense qu'il devrait …
J'ai essayé de convertir une valeur de secondes (dans une variable BigDecimal) en une chaîne dans un editText comme "1 heure 22 minutes 33 secondes" ou quelque chose du genre. J'ai essayé ceci: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = …
J'ai un BigDecimaldomaine amountqui représente l' argent, et je dois imprimer sa valeur dans le navigateur dans un format comme $123.00, $15.50, $0.33. Comment puis je faire ça? (La seule solution simple que je me vois est d' obtenir à floatValuepartir BigDecimalet puis en utilisant NumberFormatpour faire une précision à …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.