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
.
- Android getOrientation Azimut se contamina cuando el teléfono está inclinado
- Tengo problemas para entender lo que realmente obtiene GetDisplayRect () de PhotoView (construyendo una herramienta de recorte de fotos de android)
- Mover la mano Minuto en el reloj de Android
- ¿Cómo inserto caracteres especiales como texto en el editor de XML para Android?
- Configuración de la alarma en base mensual android
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
?
- ¿Cómo determino qué triángulo tocó el usuario en este rectángulo?
- Fórmulas matemáticas en textview en android
- Calcular la distancia entre dos puntos directamente en SQLite
- Implementar página curl en android?
- ¿Debo confiar en Android para descartar los sorteos fuera de pantalla?
- ¿Qué es una buena biblioteca para analizar expresiones matemáticas en java?
- Android - calcular el ángulo del arco
- ¿Multiplicar dobles en java?
¿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");