জাভা: ফ্ল্যাটকে স্ট্রিং এবং স্ট্রিংকে ফ্লোটে রূপান্তর করুন


211

আমি কীভাবে ফ্লোট থেকে স্ট্রিং বা স্ট্রিংকে ফ্লোটে রূপান্তর করতে পারি?

আমার ক্ষেত্রে আমাকে 2 টি মানের স্ট্রিং (মানটি যে আমি টেবিল থেকে পেয়েছি) এবং আমি গণনা করেছি ভাসমান মানের মধ্যে দৃ between়তা তৈরি করতে হবে।

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

আমি ভাসা থেকে স্ট্রিং পর্যন্ত চেষ্টা করেছি:

String sSelectivityRate = String.valueOf(valueCalculated );

তবে দৃ f়তা ব্যর্থ হয়


9
আপনি কি জানেন যে floatমান কখনই নির্ভুল হয় না?
xtofl

1
আপনি কি তাদের Stringসাথে floatমান হিসাবে বা তুলনা করতে চান ? এটি একই জিনিস নয়। floatএর চেয়ে কম সুনির্দিষ্ট doubleএবং হয় গণনার মান থেকে গোলাকার ত্রুটি থাকতে পারে।
পিটার লরে

3
গুগল গুগলের সাথে বিভ্রান্ত হবে না। ;)
পিটার লরে

আমি আপনাকে এবং গগল থেকে সমাধানের চেষ্টা করেছি তবে যখন আমি দৃ the় প্রতিবেদনটি পেয়েছি: java.lang.SsertionError: প্রত্যাশিত: <25> তবে ছিল: <25.0>
লোলা

উত্তর:


378

জাভা Floatক্লাস ব্যবহার ।

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

তুলনা করতে স্ট্রিংকে ফ্লোটে রূপান্তর করা এবং দুটি ফ্লোট হিসাবে তুলনা করা সর্বদা ভাল better এটি কারণ একটি ভাসমান সংখ্যার জন্য একাধিক স্ট্রিং উপস্থাপনা রয়েছে, যা স্ট্রিংগুলির সাথে তুলনা করার সময় আলাদা হয় (যেমন "25"! = "25.0"! = "25.00" ইত্যাদি)


এটি কাজ করার জন্য আমার কি কিছু আমদানি করা দরকার? আমি অপ্রত্যাশিত টাইপ পেয়েছি 'ফ্লোট' (যদিও আমি একটি উদ্ভট জাভা পরিবেশে, ওপেনহাব স্ক্রিপ্টগুলি)
জোনাথন

32

স্ট্রিং-এ স্ট্রিং - স্ট্রিং.ভ্যালুওফ ()

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

এখানে পাওয়া গেছে


ধন্যবাদ - আমাকে সাহায্য করেছে, ক্যাচ বিটের প্রয়োজন;)
হেইন ডু প্লেসিস

4

আমি বিশ্বাস করি যে নিম্নলিখিত কোডগুলি সাহায্য করবে:

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

2

এটি একটি সম্ভাব্য উত্তর, এটিও সুনির্দিষ্ট ডেটা দেবে, কেবলমাত্র প্রয়োজনীয় আকারে দশমিক পয়েন্টটি পরিবর্তন করা দরকার।

পাবলিক ক্লাস টেস্টস্ট্যান্ডআলোন {

    / **
     * 

এই পদ্ধতিটি প্রধান

* @ পরিমাপকৃত নিবন্ধগুলি বাতিল * / পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] আরগস) { // টোডো স্বয়ংক্রিয়ভাবে উত্পন্ন পদ্ধতি স্টাব চেষ্টা করুন ভাসা এফ 1 = 152.32f; বিগডিসিমাল রাউন্ডফাইনালপ্রাইস = নতুন বিগডিসিমাল (f1.floatValue ())। সেটস্কেল (2, বিগডিসিমাল.রোউND_HALF_UP); System.out.println ("f1 ->" + f1); স্ট্রিং এস 1 = রাউন্ডফাইনালপ্রাইস.টোপ্লেইনস্ট্রিং (); System.out.println ("এস 1" + এস 1); } ধরা (ব্যতিক্রম ই) { // টডো স্বয়ংক্রিয়ভাবে উত্পাদিত ক্যাচ ব্লক e.printStackTrace (); } } }

আউটপুট হবে

f1 -> 152.32
এস 1 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 (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.