Jak mógłbym przekonwertować z float na string lub z string na float?
W moim przypadku muszę dokonać asercji pomiędzy 2 wartościami string (wartość, którą otrzymałem z tabeli) i wartością float, którą obliczyłem.
String valueFromTable = "25";
Float valueCalculated =25.0;
Próbowałem z float na string:
String sSelectivityRate = String.valueOf(valueCalculated );
ale asercja kończy się niepowodzeniem
Użycie klasy Float
języka Java.
float f = Float.parseFloat("25");
String s = Float.toString(25.0f);
Aby porównać, zawsze lepiej jest przekonwertować ciąg znaków na liczbę zmiennoprzecinkową i porównać jako dwie liczby zmiennoprzecinkowe. Dzieje się tak dlatego, że dla jednej liczby float istnieje wiele reprezentacji łańcuchowych, które są różne, gdy są porównywane jako łańcuchy (np. "25" != "25.0" != "25.00" itd.)
Float to string - String.valueOf()
float amount=100.00f;
String strAmount=String.valueOf(amount);
// or Float.toString(float)
String do Float - Float.parseFloat()
String strAmount="100.20";
float amount=Float.parseFloat(strAmount)
// or Float.valueOf(string)
Możesz wypróbować tę próbkę kodu:
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());
}
}
}
znaleziony tutaj