web-dev-qa-db-ja.com

java:floatをStringに、Stringをfloatに変換する

どうやってfloatからstringへ、あるいはstringからfloatへ変換できますか?

私の場合は、2つの値string(テーブルから取得した値)と計算したfloat値の間のアサーションを作成する必要があります。

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

私はフロートから文字列にしようとしました:

String sSelectivityRate = String.valueOf(valueCalculated );

しかし主張は失敗する

197
lola

Javaの Float クラスを使う.

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

比較するには、文字列をfloatに変換して2つのfloatとして比較するのが常に良い方法です。これは、1つの浮動小数点数に対して複数の文字列表現があり、それらは文字列として比較したときに異なるためです(例: "25"!= "25.0"!= "25.00"など)

362
Petar Ivanov

文字列にフロート - String.valueOf()

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

浮動小数点数への文字列 - Float.parseFloat()

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

このサンプルコードを試すことができます。

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

見つかった ここ

5
JMax

私は以下のコードが役に立つと思います:

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

これは可能な答えです、これはまた正確なデータを与えるでしょう、ちょうど必要な形式で小数点を変更する必要があります。

パブリッククラスTestStandAlone {
 
 /** 
 * 
このメソッドはmain * @param args void */ public static void main(String [] args){ // TODO自動生成メソッドstub try { float f1 = 152.32f; BigDecimal roundfinalPrice = new BigDecimal(f1.floatValue())。setScale(2、BigDecimal.ROUND_HALF_UP); System.out.println( "f1 - >" + f1); 文字列s1 = roundfinalPrice.toPlainString(); System.out.println( "s1" + s1); } catch(例外e){ // TODO自動生成されたcatchブロック e.printStackTrace(); } } }

出力は

 f1  - > 152.32 
 s1 152.32 
2
Anupam

探しているなら、小数点以下2桁を言ってください。Float f = (float)12.34; String s = new DecimalFormat ("#.00").format (f);

1
RichEarle

この方法は良い方法ではありませんが、簡単で推奨できません。たぶん、私はこれが最も効果的でない方法であり、より悪いコーディング方法であると言うべきですが、使うのが楽しいです

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

空の引用符では、変数strにnull文字列を追加し、文字列型に 'val'をアップキャストします。

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