El error es: missing return statement.
Aquí agrego el código:
Código:
public class FormatoDouble { public static String toString(double valor, int precision) { return toString(valor, precision, false); } public static String toString(double valor, int precision, boolean usar_coma) { boolean cero_derecha; double val_abs = Math.abs(valor); // Convertir a positivo if(precision < 0) { precision = -precision; cero_derecha = false; } else { cero_derecha = true; } String signoStr = ""; if(valor < 0) { signoStr = "-"; } long digito = (long) Math.floor(val_abs); // da la parte entera String digitoStr = String.valueOf(digito); if(usar_coma) { int longDigitoStr = digitoStr.length(); int indice_dig = (longDigitoStr - 1) % 3; indice_dig++; String digitoComaStr = digitoStr.substring(0, indice_dig); while(indice_dig < longDigitoStr) { digitoComaStr += "," + digitoStr.substring(indice_dig, indice_dig+3); indice_dig += 3; } digitoStr = digitoComaStr; } String digitoPrecStr = ""; long digitoPrec = Math.round( (val_abs - digito) * Math.pow(10.0, precision) ); digitoPrecStr = String.valueOf(digitoPrec); // LLenar con ceros entre el decimal y los digitos de la precision String llenarCero = ""; for(int i = 0; i < precision-digitoPrecStr.length(); i++ ) { llenarCero += "0"; } digitoPrecStr = llenarCero + digitoPrecStr; if(! cero_derecha) { int ultimoCero; for(ultimoCero = digitoPrecStr.length() - 1; ultimoCero >= 0; ultimoCero--) { if( digitoPrecStr.charAt(ultimoCero) != '0' ) { break; } digitoPrecStr = digitoPrecStr.substring(0, ultimoCero + 1); } if( digitoPrecStr.equals("") ) { return signoStr + digitoStr; } else { return signoStr + digitoStr + "." + digitoPrecStr; } } } }