java: convert float para String e String para flutuar

Como eu poderia converter de float para string ou string para flutuar?

No meu caso preciso fazer a asserção entre 2 valores de string (valor que obtive da tabela) e o valor float que calculei.

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

Eu tentei de float para string:

 String sSelectivityRate = String.valueOf(valueCalculated ); 

mas a afirmação falha

Usando a class Float do Java.

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

Para comparar, é sempre melhor converter a string para flutuar e comparar como dois floats. Isso ocorre porque, para um número float, há várias representações de string, que são diferentes quando comparadas como strings (por exemplo, “25”! = “25.0”! = “25.00” etc.)

Flutuar para string – String.valueOf ()

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

String para Flutuar – Float.parseFloat ()

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

Você pode tentar este exemplo de código:

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

encontrado aqui

Eu acredito que o seguinte código ajudará:

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

Esta é uma resposta possível, isso também dará os dados precisos, só precisa mudar o ponto decimal no formulário exigido.

 public class TestStandAlone {

     / **
      * 

Este método é para o principal

* @param args void * / public static void main (String [] args) { // TODO stub do método gerado automaticamente experimentar { Flutuante f1 = 152,32f; BigDecimal roundfinalPrice = novo BigDecimal (f1.floatValue ()). SetScale (2, BigDecimal.ROUND_HALF_UP); System.out.println ("f1 ->" + f1); String s1 = roundfinalPrice.toPlainString (); System.out.println ("s1" + s1); } catch (exceção e) { // TODO Bloco catch gerado automaticamente e.printStackTrace (); } } }

Saída será

 f1 -> 152,32
 s1 152,32

bem este método não é bom, mas fácil e não sugerido. Talvez eu deva dizer que este é o método menos eficaz e a pior prática de codificação, mas divertido de usar

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

aspas vazias, adicione uma string nula à variável str, fazendo upcasting ‘val’ para o tipo string.

 String str = "1234.56"; float num = 0.0f; int digits = str.length()- str.indexOf('.') - 1; float factor = 1f; for(int i=0;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);