web-dev-qa-db-fra.com

java: convertit float en String et String en float

Comment pourrais-je convertir de float en string ou string en float?

Dans mon cas, je dois faire l'assertion entre 2 valeurs string (valeur que j'ai obtenue de table) et la valeur float que j'ai calculée.

String valueFromTable = "25";
Float valueCalculated =25.0;

J'ai essayé de float à string:

String sSelectivityRate = String.valueOf(valueCalculated );

mais l'assertion échoue 

193
lola

Utilisation de Float class de Java.

float f = Float.parseFloat("25");
String s = Float.toString(25.0f);

Pour comparer, il est toujours préférable de convertir la chaîne en float et de la comparer en tant que deux float. En effet, pour un même numéro flottant, il existe plusieurs représentations de chaînes, qui sont différentes lorsqu'elles sont comparées sous forme de chaînes (par exemple, "25"! = "25.0"! = "25.00" etc.)

360
Petar Ivanov

Float to string - String.valueOf ()

float amount=100.00f;
String strAmount=String.valueOf(amount);
// or  Float.toString(float)

Chaîne pour flotter - Float.parseFloat ()

String strAmount="100.20";
float amount=Float.parseFloat(strAmount)
// or  Float.valueOf(string)
32
adatapost

Vous pouvez essayer cet exemple de code:

public class StringToFloat
{

  public static void main (String[] args)
  {

    // String s = "fred";    // do this if you want an exception

    String s = "100.00";

    try
    {
      float f = Float.valueOf(s.trim()).floatValue();
      System.out.println("float f = " + f);
    }
    catch (NumberFormatException nfe)
    {
      System.out.println("NumberFormatException: " + nfe.getMessage());
    }
  }
}

trouvé ici

5
JMax

Je crois que le code suivant aidera:

float f1 = 1.23f;
String f1Str = Float.toString(f1);      
float f2 = Float.parseFloat(f1Str);
4
omt66

C'est une réponse possible, cela donnera aussi les données précises, il suffit de changer le point décimal dans la forme requise.

 public class TestStandAlone {

 /**
 * 

Cette méthode consiste à

* @param args void */ public static void main (String [] args) { // TODO stub .__ Méthode générée automatiquement. essayez { Flottant f1 = 152.32f; BigDecimal roundfinalPrice = new BigDecimal (f1.floatValue ()). SetScale (2, BigDecimal.ROUND_HALF_UP); System.out.println ("f1 ->" + f1); Chaîne s1 = roundfinalPrice.toPlainString (); System.out.println ("s1" + s1); } catch (exception e) { // TODO Bloc de capture généré automatiquement e.printStackTrace (); } } }

La sortie sera 

 f1 -> 152.32 
 s1 152.32 
2
Anupam

Si vous cherchez, dites deux décimales .. Float f = (float)12.34; String s = new DecimalFormat ("#.00").format (f);

1
RichEarle

eh bien, cette méthode n’est pas bonne, mais facile et non recommandée. Peut-être devrais-je dire que c’est la méthode la moins efficace et la pire pratique de codage mais, amusante à utiliser,

float val=10.0;
String str=val+"";

pour les guillemets vides, ajoutez une chaîne NULL à la variable str et upcasting 'val' au type de chaîne.

1
Anmol Thukral
String str = "1234.56";
float num = 0.0f;

int digits = str.length()- str.indexOf('.') - 1;

float factor = 1f;

for(int i=0;i<digits;i++) factor /= 10;

for(int i=str.length()-1;i>=0;i--){

    if(str.charAt(i) == '.'){
        factor = 1;
        System.out.println("Reset, value="+num);
        continue;
    }

    num += (str.charAt(i) - '0') * factor;
    factor *= 10;
}

System.out.println(num);
0
gpa