230 votes

java: convertit float en String et String en float

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

Dans mon cas, je dois faire l'assertion entre 2 valeurs de chaîne (valeur que j'ai de la table) et la valeur de flottement que j'ai calculée.

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

J'ai essayé de float en string:

 String sSelectivityRate = String.valueOf(valueCalculated );
 

mais l'assertion échoue

398voto

Petar Ivanov Points 29530
 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 à deux flottants. En effet, pour un nombre flottant, il existe plusieurs représentations de chaînes, qui sont différentes par rapport aux chaînes (par exemple, "25"! = "25.0"! = "25.00", etc.)

37voto

AVD Points 57984

Flotter en chaîne - String.valueOf ()

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

String to Float - Float.parseFloat ()

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

5voto

JMax Points 12956

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

3voto

omt66 Points 527

Je crois que le code suivant aidera:

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

2voto

Anupam Points 75

C'est une réponse possible, cela permettra également de donner des données précises, juste besoin de changer le point décimal dans la forme requise.

public class TestStandAlone {

/**
 * 

Cette méthode a pour principal

* @param args vide */ public static void main(String[] args) { // TODO Auto-généré méthode stub try { Float f1=152.32 f; BigDecimal roundfinalPrice = new BigDecimal(f1.floatValue()).setScale(2,BigDecimal.ROUND_HALF_UP); Système..println("f1 --> "+f1); String s1=roundfinalPrice.toPlainString(); Système..println("s1 "+s1); } catch (Exception e) { // TODO Auto-généré bloc catch e.printStackTrace(); } } }

La sortie sera

f1 --> 152.32
s1 152.32

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X