Convertir cadena a entero / flotante / doble

Estoy intentando convertir una cadena a Integer/Float/Double pero tengo una NumberFormatException .

Mi cadena es 37,78584 , ahora estoy convirtiendo esto a cualquiera de ellos tengo NumberFormatException .

¿Cómo puedo convertir esta string a cualquiera de ellos.

Por favor, ayúdame a salir de este problema.

9 Solutions collect form web for “Convertir cadena a entero / flotante / doble”

Tienes que usar la configuración regional apropiada para el número como

 String s = "37,78584"; Number number = NumberFormat.getNumberInstance(Locale.FRENCH).parse(s); double d= number.doubleValue(); System.out.println(d); 

huellas dactilares

 37.78584 

Reemplazar , por "" en blanco en la cadena y luego convertir sus números

 String str = "37,78584"; str = str.replaceAll("\\,",""); 

El uso de métodos como Type.parseSomething y Type.valueOf no es la mejor opción, ya que su comportamiento depende de la configuración regional. Por ejemplo, en algunos idiomas, el delimitador decimal es '.' Símbolo cuando en otro ','. Por lo tanto, en algunos sistemas el código funciona bien en otro, se bloquea y arroja excepciones. La manera más apropiada es utilizar formateadores. JDK y Android SDK tiene muchos preparadores listos para usar para muchos propósitos, que es independiente de la configuración regional. Echa un vistazo a NumberFormat

La mejor práctica es utilizar una configuración regional que utilice una coma como separador, como la configuración regional francesa:

 double d = NumberFormat.getNumberInstance(Locale.FRENCH).parse("37,78584").doubleValue(); 

El método más rápido es sustituir cualquier comas por períodos.

 double d = String.parseDouble("37,78584".replace(",",".")); 

Compruebe el valor de la cadena

ese

 if(String .equals(null or ""){ } else{ //Change to integer } 

Haga esto antes de analizar para quitar las comas:

 myString.replaceAll(",", "")​; 

Reemplazar '

 String value = "23,87465"; int value1 = Integer.parseInt(value.toString().replaceAll("[^0-9.]","")); 

Primero quite , esto, usando código abajo

 String s= "37,78584"; s=s.replaceAll(",", ""); 

Y luego use debajo del código

Para cadena a entero: –

 Integer.parseInt(s); 

Para que la cadena flote: –

 Float.parseFloat(s); 

Para cadena a doble: –

 Double.parseDouble(s); 

Intente reemplazar el , y luego convertir en un entero / float / doble

 String mysting="37,78584"; String newString=myString.replace(",", ""); int value=Integer.parseInt(newString); 
  • Problema de compilación de Gradle: actualización de Quickblox y httpclient en el último SDK23 de Android
  • ¿Hay alguna manera de establecer un parámetro de petición base que se incluirá en cada solicitud hecha con la biblioteca de Retrofit de Square?
  • ¿Cómo puedo dividir la lógica de HttpUrlConnection en varios métodos?
  • Cuando Fragment.instantiate es preferible sobre MyFragment.newInstance o nuevo MyFragment ()
  • FTP Subir y descargar en Android
  • Diseño de widgets para Android
  • Tengo problemas para que la interfaz de búsqueda de Android funcione en la barra de acciones
  • Escucha un shoutcast con Android
  • ¿Cómo usar la API Android KeyStore con API 18?
  • Evitar que la dependencia de Gradle para la biblioteca de soporte sea reemplazada por una versión más reciente
  • Cómo iterar a través de SparseArray?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.