it-swarm.com.de

java: konvertiere float in string und string in float

Wie kann ich von Float in String oder String in Float konvertieren?

In meinem Fall muss ich die Zusicherung zwischen 2 Werten machen (Wert, den ich aus der Tabelle erhalten habe) und Float-Wert, den ich berechnet habe.

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

Ich habe von Float zu String versucht:

String sSelectivityRate = String.valueOf(valueCalculated );

aber die Behauptung versagt 

193
lola

Verwendung von Java’s Float class.

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

Zum Vergleich ist es immer besser, die Zeichenfolge in Float umzuwandeln und als zwei Floats zu vergleichen. Dies liegt daran, dass es für eine Float-Nummer mehrere String-Darstellungen gibt, die sich im Vergleich zu Strings unterscheiden (z. B. "25"! = "25.0"! = "25.00" usw.).

360
Petar Ivanov

Float in String - String.valueOf ()

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

Zeichenfolge für Float - Float.parseFloat ()

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

Sie können dieses Codebeispiel ausprobieren:

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());
    }
  }
}

gefunden hier

5
JMax

Ich glaube, der folgende Code wird helfen:

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

Dies ist eine mögliche Antwort, dies gibt auch die genauen Daten. Sie müssen nur den Dezimalpunkt in der erforderlichen Form ändern.

 public Klasse TestStandAlone {

 /**
 * 

Diese Methode ist zu beachten

* @param args ungültig */ public static void main (String [] args) { // TODO Automatisch generierter Methodenstub Versuchen { Float f1 = 152.32f; BigDecimal roundfinalPrice = new BigDecimal (f1.floatValue ()). SetScale (2, BigDecimal.ROUND_HALF_UP); . System.out.println ("f1 ->" + f1); Zeichenfolge s1 = roundfinalPrice.toPlainString (); System.out.println ("s1" + s1); } catch (Ausnahme e) { // TODO Automatisch generierter Fangblock e.printStackTrace (); } } }

Ausgabe wird sein 

 f1 -> 152.32 
 s1 152.32 
2
Anupam

Wenn Sie suchen, sagen Sie zwei Dezimalstellen .. Float f = (float)12.34; String s = new DecimalFormat ("#.00").format (f);

1
RichEarle

nun, diese Methode ist nicht gut, aber einfach und nicht vorgeschlagen. Vielleicht sollte ich sagen, dies ist die am wenigsten wirksame Methode und die schlechtere Kodierungspraxis.

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

in den leeren Anführungszeichen fügen Sie der Variablen str eine leere Zeichenfolge hinzu, wobei "val" mit dem String-Typ aktualisiert wird.

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