जावा: फ्लोट को स्ट्रींग और स्ट्रिंग को फ्लोट में कनवर्ट करें


211

मैं फ्लोट से स्ट्रिंग या स्ट्रिंग से फ्लोट में कैसे बदल सकता हूं?

मेरे मामले में मुझे 2 मान स्ट्रिंग (मान जो मुझे तालिका से मिला है) और फ्लोट मान के बीच गणना करने की आवश्यकता है जो मैंने गणना की है।

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

मैंने फ्लोट से स्ट्रिंग की कोशिश की:

String sSelectivityRate = String.valueOf(valueCalculated );

लेकिन दावा विफल रहता है


9
आप कर रहे हैं पता है कि floatमूल्यों सटीक कभी नहीं कर रहे हैं?
xtofl

1
क्या आप उन्हें मूल्यों के रूप में Stringया तुलना करना चाहते floatहैं? यह एक ही बात नहीं है। floatकी तुलना में कम सटीक है doubleऔर या तो परिकलित मानों से राउंडिंग त्रुटियाँ हो सकती हैं।
पीटर लॉरी

3
Google को googol के साथ भ्रमित नहीं होना चाहिए। ;)
पीटर लॉरी

मैंने आपको हल करने की कोशिश की और काले चश्मे से भी, लेकिन जब मैं जोर लगाता हूं तो मुझे मिला: java.lang.AssertionError: अपेक्षित: <25> लेकिन था: <25.0>
लोला

जवाबों:


379

जावा की Floatकक्षा का उपयोग करना ।

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

तुलना करने के लिए स्ट्रिंग को फ्लोट में बदलना और दो फ्लोट्स की तुलना करना हमेशा बेहतर होता है। इसका कारण यह है कि एक फ्लोट संख्या के लिए कई स्ट्रिंग अभ्यावेदन होते हैं, जो स्ट्रिंग्स (जैसे "25"! = "25.0"! = "25.00" आदि) की तुलना में भिन्न होते हैं।


क्या मुझे काम करने के लिए कुछ आयात करने की आवश्यकता है? मुझे अपरिभाषित प्रकार 'फ्लोट' मिलता है (मैं एक अजीब जावा वातावरण में हूँ, हालांकि, ओपनहैब स्क्रिप्ट)
जोनाथन

32

फ्लोट टू स्ट्रिंग - String.valueOf ()

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

स्ट्रिंग फ़्लोट - फ़्लोट.परसेफ़्लोत ()

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

यह एक संभावित उत्तर है, यह सटीक डेटा भी देगा, बस आवश्यक रूप में दशमलव बिंदु को बदलने की आवश्यकता है।

पब्लिक क्लास टेस्टस्टैंडअलोन {

    / **
     * 

यह तरीका मुख्य है

* @ वरम् अस्त्र शून्य * / सार्वजनिक स्थैतिक शून्य main (String [] args) { // TODO ऑटो-जनरेटेड विधि ठूंठ प्रयत्न { फ्लोट एफ 1 = 152.32 एफ; BigDecimal roundfinalPrice = नया BigDecimal (f1.floatValue ()) setScale (2, BigDecimal.ROUND_HALF_UP); System.out.println ("f1 ->" + f1); स्ट्रिंग s1 = roundfinalPrice.toPlainString (); System.out.println ("s1" + s1); } पकड़ (अपवाद ई) { // 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+"";

खाली उद्धरण, स्ट्रिंग स्ट्रिंग के लिए 'वैल' को ऊपर उठाते हुए चर स्ट्रिंग में एक अशक्त स्ट्रिंग जोड़ें।


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

फ्लोट को स्ट्रिंग में बदलने के तीन तरीके हैं

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

तैरने के लिए स्ट्रींग स्ट्रींग दो तरीके हैं

  1. Float.valueOf (एसटीआर)
  2. Float.parseFloat (एसटीआर);

उदाहरण:-

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

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.