java : float을 String으로 변환하고 String을 float로 변환


211

float에서 string으로 또는 string에서 float로 어떻게 변환 할 수 있습니까?

필자의 경우 2 값 문자열 (테이블에서 얻은 값)과 계산 한 부동 소수점 값 사이의 어설 션을 만들어야합니다.

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

float에서 string으로 시도했습니다.

String sSelectivityRate = String.valueOf(valueCalculated );

그러나 주장은 실패한다


9
당신이 있는 것을 알고 float값이 정확한 결코?
xtofl

1
그것들 Stringfloat값 으로 또는 값 으로 비교 하겠습니까? 이것은 같은 것이 아닙니다. float보다 정확하지 double않으며 계산 된 값에서 반올림 오류가 발생할 수 있습니다.
Peter Lawrey

3
구글은 googol과 혼동하지 마십시오. ;)
Peter Lawrey

나는 당신에게 해결책과 고글을 시도했지만 어설 션을 만들 때 : java.lang.AssertionError : expect : <25> 그러나 was : <25.0>
lola

답변:


379

Java Float클래스 사용

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

비교하려면 항상 문자열을 부동으로 변환하고 두 개의 부동으로 비교하는 것이 좋습니다. 이는 하나의 부동 소수점 숫자에 대해 문자열과 비교할 때 다른 여러 문자열 표현이 있기 때문입니다 (예 : "25"! = "25.0"! = "25.00"등).


이것이 작동하려면 뭔가를 가져와야합니까? 나는 undefied 유형 '플로트'를 얻을 수 (나는 이상한 자바 환경에있어하지만, openhab 스크립트)
조나단

32

부동 소수점을 문자열로-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)

5

이 코드 샘플을 시도해 볼 수 있습니다.

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

여기 에서 발견


고마워-나를 도와, 캐치 비트가 필요해;)
Hein du Plessis

4

다음 코드가 도움이 될 것이라고 믿습니다.

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

2

이것은 가능한 대답입니다. 이는 정확한 데이터를 제공하며 필요한 형식으로 소수점을 변경하면됩니다.

공개 클래스 TestStandAlone {

    / **
     * 

이 방법은

* @param args void * / 공개 정적 무효 main (String [] args) { // TODO 자동 생성 메소드 스텁 { 플로트 f1 = 152.32f; BigDecimal roundfinalPrice = 새로운 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 자동 생성 캐치 블록 e.printStackTrace (); } } }

출력은

f1-> 152.32
s1 152.32

2

찾고 있다면 소수점 이하 두 자리를 말합니다 .. Float f = (float)12.34; String s = new DecimalFormat ("#.00").format (f);


1

이 방법은 좋은 방법은 아니지만 쉽고 쉬운 방법은 아닙니다. 어쩌면 이것이 가장 효과적인 방법이 아니며 코딩 방법이 좋지 않지만 사용하기 재미 있다고 말할 수도 있습니다.

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

빈 따옴표는 문자열 유형에 'val'을 상향 변환하여 변수 str에 null 문자열을 추가합니다.


0
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

float를 String 으로 변환 하는 가지 방법 이 있습니다 .

  1. ""+ f
  2. Float.toString (f)
  3. String.valueOf (f)

문자열을 부동 으로 변환 하는 가지 방법 이 있습니다

  1. Float.valueOf (str)
  2. Float.parseFloat (str);

예:-

public class Test {

    public static void main(String[] args) {
        System.out.println("convert FloatToString " + convertFloatToString(34.0f));

        System.out.println("convert FloatToStr Using Float Method " + convertFloatToStrUsingFloatMethod(23.0f));

        System.out.println("convert FloatToStr Using String Method " + convertFloatToStrUsingFloatMethod(233.0f));

        float f = Float.valueOf("23.00");
    }

    public static String convertFloatToString(float f) {
        return "" + f;
    }

    public static String convertFloatToStrUsingFloatMethod(float f) {
        return Float.toString(f);
    }

    public static String convertFloatToStrUsingStringMethod(float f) {
        return String.valueOf(f);
    }

}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.