Buenas.
Tengo un valor en un BigDecimal y necesito separar su parte entera y decimal.
Había pensado recuperar el dato, pasarlo a String y hacer un split por el punto, pero me devuelve un array vacio.
Muchas gracias. Y perdonen las molestias.
| |||
separar de un Bigdecimal la parte entera y la decimal Buenas. Tengo un valor en un BigDecimal y necesito separar su parte entera y decimal. Había pensado recuperar el dato, pasarlo a String y hacer un split por el punto, pero me devuelve un array vacio. Muchas gracias. Y perdonen las molestias. |
| ||||
Respuesta: separar de un Bigdecimal la parte entera y la decimal Buenas, Que contiene exactamemente el String al que intentas hacer el split?
Código Java:
Ver original Un saludo
__________________ If to err is human, then programmers are the most human of us |
| |||
Respuesta: separar de un Bigdecimal la parte entera y la decimal BigDecimal big = new BigDecimal("925.0000"); System.out.println("result: "tubigdecimal.toString()); result: 925.0000 |
| |||
Respuesta: separar de un Bigdecimal la parte entera y la decimal Al final lo he hecho así, supongo que hay mejores maneras. int longitudParteDecimal = big.scale(); int precision = big.precision(); int longitudParteEntera = precision - longitudParteDecimal; StringBuilder resultParteEntera = new StringBuilder("0"); StringBuilder resultParteDecimal = new StringBuilder(""); if (longitudParteEntera >= 0) { String parteEnteraString = big.toBigInteger() .toString(); String parteDecimalString = ""; if (longitudParteDecimal != 0) { parteDecimalString = big.toString().substring( longitudParteEntera + 1, precision + 1); } resultParteEntera = new StringBuilder(parteEnteraString); resultParteDecimal = new StringBuilder(parteDecimalString); } resultParteEntera = new StringBuilder(this.obtenerTitulosFormateados( longitudEnteros, new BigDecimal(resultParteEntera.toString()))); while (resultParteDecimal.length() < longitudDecimales) { resultParteDecimal.append("0"); } if (resultParteDecimal.length() > longitudDecimales) { resultParteDecimal = new StringBuilder( resultParteDecimal.substring(0, longitudDecimales)); } result.append(resultParteEntera).append(resultPart eDecimal); |
| ||||
Respuesta: separar de un Bigdecimal la parte entera y la decimal Buenas, Y no te funciona el split??? A mi me funciona sin problemas. Copia este codigo y pruebalo:
Código Java:
Ver original Salida: result: 925.0000 Parte entera: 925 Parte decimal: 0000 Un saludo
__________________ If to err is human, then programmers are the most human of us |
| |||
Respuesta: separar de un Bigdecimal la parte entera y la decimal Gracias. Lo hice con un Mac y me funcionaba el split y lo pase a windows y no funcionaba. Debe ser algo de System o algo parecido, aun hay algún caso que me llega en coma flotante y split no me serviría, lo voy a dejar como lo tengo. |
| |||
Respuesta: separar de un Bigdecimal la parte entera y la decimal Ojo dependiendo de la configuración local puede devolverte 10.5 o 10,5 , a veces inclusive sale con separador de miles. antes del split() hace que el string salga por consola asi verificas que te esta devolviendo. Por otro lado esto me funciona siempre: public static void bigDecimalTest(){ BigDecimal big = new BigDecimal("925.9900"); System.out.println(big.intValue()); } //devuelve 925 Última edición por Jeabdm; 18/02/2016 a las 11:26 |
Etiquetas: |