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
.
- ¿Cómo determino qué triángulo tocó el usuario en este rectángulo?
- Mover la mano Minuto en el reloj de Android
- Comprender claramente el cálculo de la matriz
- Convertir valores de ReplayGain a ajustes de volumen
- Obtener los siguientes N puntos geográficos más cercanos
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
?
- Desplazamiento pequeño al calcular la rotación en función del punto de contacto
- Fórmulas matemáticas en textview en android
- Android - Ajuste de la posición de la vista de imagen en la parte superior de una vista de imagen con zoom
- Mostrar una buena fórmula de matemáticas en Android
- Android: ¿Cómo obtener sólo dos dígitos después del punto en el valor decimal? no quiere trunc el valor
- ¿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)?
- ¿Cómo inserto caracteres especiales como texto en el editor de XML para Android?
¿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");