Perché il seguente codice solleva l'eccezione mostrata di seguito? BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. Eccezione: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Devo calcolare alcune variabili in virgola mobile e il mio collega mi suggerisce di utilizzare BigDecimalinvece che doubledal momento che sarà più preciso. Ma voglio sapere di cosa si tratta e come trarne il massimo BigDecimal?
Sto cercando di arrotondare i valori di BigDecimal a due decimali. sto usando BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); ma non fa quello che voglio costantemente: 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 …
Ho questo piccolo metodo pazzo che converte i valori BigDecimal in stringhe belle e leggibili. 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); } Tuttavia, produce anche un cosiddetto separatore di raggruppamento ","che fa emergere tutti i miei valori in questo modo: …
Ho il seguente codice in Java; BigDecimal price; // assigned elsewhere if (price.compareTo(new BigDecimal("0.00")) == 0) { return true; } Qual è il modo migliore per scrivere la condizione if?
Ho una raccolta di BigDecimals (in questo esempio a LinkedList) che vorrei aggiungere insieme. È possibile utilizzare i flussi per questo? Ho notato che la Streamclasse ha diversi metodi Stream::mapToInt Stream::mapToDouble Stream::mapToLong Ognuno dei quali ha un sum()metodo conveniente . Ma, come sappiamo, floate l' doublearitmetica è quasi sempre una …
Considera la semplice classe di test: 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 …
Voglio fare alcune somme semplici con alcuni valori di valuta espressi in BigDecimaltipo. 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); Ovviamente non capisco bene l' BigDecimalaritmetica, vedi l'output dietro. Test 0 0 0 Qualcuno può darmi una mano?
Qual è la differenza tra queste due chiamate? (C'è qualche?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
Ho il metodo Hibernate che mi restituisce un BigDecimal. Ho un altro metodo API a cui devo passare quel numero ma accetta Integer come parametro. Non riesco a cambiare i tipi di ritorno o i tipi variabili di entrambi i metodi. Ora come convertire il BigDecimal in intero e passarlo …
Come impostare il separatore delle migliaia in Java? Ho una rappresentazione in formato stringa di un BigDecimal che desidero formattare con un separatore di migliaia e restituire come stringa.
Sto cercando di leggere alcuni valori BigDecimal dalla stringa. Diciamo che ho questa stringa: "1,000,000,000.999999999999999" e voglio ottenere un BigDecimal da esso. Qual è il modo per farlo? Prima di tutto, non mi piacciono le soluzioni che utilizzano sostituzioni di stringhe (sostituzione di virgole ecc.). Penso che dovrebbe esserci un …
Ho provato a convertire un valore di secondi (in una variabile BigDecimal) in una stringa in un editText come "1 ora 22 minuti 33 secondi" o qualcosa del genere. Ho provato questo: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = new …
Ho un BigDecimalcampo amountche rappresenta il denaro, e ho bisogno di stampare il suo valore nel browser in un formato simile $123.00, $15.50, $0.33. Come lo posso fare? (L'unica soluzione semplice, che mi vedo sta ottenendo floatValueda BigDecimale quindi utilizzando NumberFormatper fare la precisione a due cifre per la parte …
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.