Tengo este String: 10,692,467,440,017.120 (es una cantidad). Quiero analizarlo en un BigDecimal. El problema es que he probado tanto DecimalFormat como NumbeFormat en vano. ¿Alguna ayuda?
Tengo un número BigDecimal y considero solo 2 lugares decimales, así que lo trunco usando: bd = bd.setScale(2, BigDecimal.ROUND_DOWN) Ahora quiero imprimirlo como Cadena pero eliminando la parte decimal si es 0, por ejemplo: 1.00 -> 1 1.50 -> 1.5 1.99 -> 1.99 Intenté usar un Formatter, formatter.format pero siempre obtengo los 2 dígitos decimales. […]
Actualmente estoy aprendiendo y aplicando MongoDB para un pequeño proyecto relacionado con finanzas. Cuando leo MongoDB en acción , dice: El único otro problema que comúnmente surge con los tipos numéricos BSON es la falta de soporte decimal. Esto significa que si planea almacenar valores de moneda en MongoDB, debe usar un tipo de entero […]
Escribo aplicaciones de comercio de divisas para vivir, así que tengo que trabajar con valores monetarios (es una pena que Java todavía no tenga tipo de flotación decimal y no tenga nada que respalde los cálculos monetarios de precisión arbitraria). “¡Usa BigDecimal!” – tu podrias decir. Hago. Pero ahora tengo algún código donde el rendimiento […]
Necesito los siguientes resultados 100.12 -> 100.00 100.44 -> 100.00 100.50 -> 101.00 100.75 -> 101.00 .round() o .setScale() ? ¿Cómo hago esto?
En Java, quiero tomar un doble valor y convertirlo en un BigDecimal e imprimir su valor String con una cierta precisión. import java.math.BigDecimal; public class Main { public static void main(String[] args) { double d=-.00012; System.out.println(d+””); //This prints -1.2E-4 double c=47.48000; BigDecimal b = new BigDecimal(c); System.out.println(b.toString()); //This prints 47.47999999999999687361196265555918216705322265625 } } Imprime esta gran […]
He intentado convertir un valor de segundos (en una variable BigDecimal) en una cadena en un texto de edición como “1 hora 22 minutos 33 segundos” o algo por el estilo. He intentado esto: String sequenceCaptureTime = “”; BigDecimal roundThreeCalc = new BigDecimal(“0”); BigDecimal hours = new BigDecimal(“0”); BigDecimal myremainder = new BigDecimal(“0”); BigDecimal minutes […]
¿Cuál es la diferencia entre estas dos llamadas? (¿Hay alguna?) // 1. new BigDecimal(“3.53456”).round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal(“3.53456”).setScale(4, RoundingMode.HALF_UP);
Tengo una colección de BigDecimals (en este ejemplo, una LinkedList ) que me gustaría agregar juntos. ¿Es posible usar transmisiones para esto? Noté que la clase Stream tiene varios métodos Stream::mapToInt Stream::mapToDouble Stream::mapToLong Cada uno de los cuales tiene un método conveniente de sum() . Pero, como sabemos, la aritmética float y double casi siempre […]
Encontré dos maneras de obtener un objeto BigDecimal de una doble d. 1. new BigDecimal(d) 2. BigDecimal.valueOf(d) ¿Cuál sería un mejor enfoque? ¿ValueOf crearía un nuevo objeto? En general (no solo BigDecimal), ¿qué se recomienda, nuevo o valueOf? Gracias.