Cómo convertir de fracción de la cadena formateada en Decimal o Float en Java?

Tengo pocos valores de cadena que estoy buscando desde mi base de datos, por ejemplo

"1/4","2/3" 

Pero al mostrar como Android ListView contenido necesito mostrarlo como 0.25 , 0.66 .

Ahora no quiero dividir la cadena y luego encubierto a las cadenas individuales a los números y luego dividirlos para tener resultado.

¿Alguien sabe, cualquier función directa como Double.valueOf o parseDouble ?

¿Por qué "no quiere dividir la cadena y luego encubierto a las cadenas individuales a los números y luego dividirlos para tener resultado" ?

No soy consciente de ninguna función incorporada para hacer eso tan la solución más simple:

 double parse(String ratio) { if (ratio.contains("/")) { String[] rat = ratio.split("/"); return Double.parseDouble(rat[0]) / Double.parseDouble(rat[1]); } else { return Double.parseDouble(ratio); } } 

También cubre el caso en el que tiene representación entera de proporción

 parse("1/2") => 0.5 parse("3/7") => 0.42857142857142855 parse("1") => 1.0 

Me imagino que han resuelto este problema en los últimos 2 años; Sin embargo, puede utilizar la clase de fracción de Apache commons .

Tiene un parser incorporado, así que si usted llamara:

 Fraction fraction = Fraction.getFraction("1/2"); double d = fraction.doubleValue(); 

Entonces d debe contener .5.

Puede dividir la fracción mediante la split("/") . A continuación, puede convertir los valores en Double y realizar la división. No tengo ni idea de Android, así es como lo haría en Java.

En java, no tenemos nada como el eval de JavaScript para que pueda utilizar esto .

No creo que haya algo así. Pero no veo por qué no crearías tu propia función como esta:

 public static double fromStringFraction(String fraction){ String[] fractionArray = fraction.split("/"); try { if (fractionArray.length != 2){ if (fractionArray.length == 1){ return Double.parseDouble(fractionArray[0]); } else { return 0d; } } double b = Double.parseDouble(fractionArray[1]); if (b==0d){ return 0d; } Double a = Double.parseDouble(fractionArray[0]); return a/b; } catch (NumberFormatException e){ return 0d; } } 

Intenta usar

 SpannableStringBuilder test = new SpannableStringBuilder(); test.append("\n"); test.append(Html.fromHtml("<sup>5</sup>/<sub>9</sub>")); test.append("\n"); 
  • Latitud / Longitud y metros
  • Determine el ángulo de visión de la cámara del teléfono inteligente
  • Comprender claramente el cálculo de la matriz
  • Android Fourier Transform Realtime - Renderscript
  • ¿Cómo obtengo el ángulo del teléfono en relación con el campo magnético de la Tierra?
  • Determinación de números pares / impares (enteros)?
  • Parallax XY y cálculo de la rotación
  • Almacene la orientación en una matriz y compare
  • Desplazamiento pequeño al calcular la rotación en función del punto de contacto
  • ¿Puede explicar (cálculos matemáticos) ejemplo de gesto (Levenshtein)?
  • Convertir valores de ReplayGain a ajustes de volumen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.