Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/02/2016, 09:05
Erickvk
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
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);