نمایش نتایج 1 تا 9 از 9

نام تاپیک: مشکل در تبدیل نوع float و string به هم

  1. #1

    Question مشکل در تبدیل نوع float و string به هم

    مشکل سطر 3 و 4 چیه که کامپایل نمیشه؟


    string s = ""; // null
    float f = (float )(6 / 5); // 1.2
    s = f.ToString; // "1.2"
    s = (string) (float.Parse(s) + 1); //"2.2"


  2. #2

    نقل قول: مشکل در تبدیل نوع float و string به هم

    سلام دوست عزیز ، شما در خط 3 برای متود To String پارانتز هاشو نذاشتی و در خط 4 بهتره از متود

    To String استفاده کنید ، کد اصلاح شده :


    string
    s = ""; // null
    float f = (float)(6 / 5); // 1.2
    s = f.ToString(); // "1.2"
    s = (float.Parse(s) + 1).ToString(); //"2.2"


    موفق و پیروز باشید !!!

  3. #3
    کاربر تازه وارد آواتار parsamiga
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    71

    نقل قول: مشکل در تبدیل نوع float و string به هم

    سلام دوست عزیز


    string
    s = "";
    float f =1.2f;
    s = f.ToString();
    s = (
    Convert.ToSingle(s) + 1).ToString();


    موفق باشی

  4. #4
    کاربر تازه وارد آواتار parsamiga
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    71

    نقل قول: مشکل در تبدیل نوع float و string به هم

    جناب salar_cpp_cs جواب شما عدد رو گرد میکنه لطفا تست کنید...

  5. #5

    Smile نقل قول: مشکل در تبدیل نوع float و string به هم

    نقل قول نوشته شده توسط parsamiga مشاهده تاپیک
    جناب salar_cpp_cs جواب شما عدد رو گرد میکنه لطفا تست کنید...
    ===============================

    من فقط کد اصلاح شده دوستمون رو نوشتم ، ممکنه منطق برنامه چیزی دیگه باشه !!!

  6. #6

    نقل قول: مشکل در تبدیل نوع float و string به هم

    این قسمت رو توضیح می دی که چرا از Convert استفاده میکنی؟ چرا Parse نمیشه؟
    s = (Convert.ToSingle(s) + 1).ToString();


    چرا اخر عدد اعشاری باید suffix بذاریم؟ " 1.2f"

  7. #7
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: مشکل در تبدیل نوع float و string به هم

    سلام

    مشکل دستوری (عدم کامپایل) را جناب Salar گفتند ('شما در خط 3 برای متود To String پارانتز هاشو نذاشتی و در خط 4 بهتره از متود ').اما در برنامه یک اشتباه سهوی هم روی داده است.در خط
    float f = (float)(6 / 5);

    خروجی بر عکس چیزی که شما فکر می کنید باید 1.2 باشد ،خروجی 1.0 است!دلیل آن این است که ابتدا دو عدد 6 و 5 که هر دو صحیح هستند بر هم تقسیم صحیح شده و خارج قسمت آن یعنی 1 حاصل عبارت 6/5 خواهد بود.حالا این عدد 1 به شکل اعشاری در f ذخیره می شود.برای بدست آوردن جواب اعشاری 1.2 باید یکی از دو عبارت زیر را بنویسید:
    float f = ((float)6 / 5);
    float f = (6.0F / 5);

    که در اولی قبل از تقسیم عدد 6 را به اعشاری تبدیل می کنید (حالا تقسیم یک عدد اعشاری بر عدد صحیح صورت می پذیرد) البته فرقی نمی کند که 6 یا 5 را به اعشاری تبدیل کنید ولی باید حتما یکی از اعداد را به اعشاری تبدیل کنید و در دومی هم رسما 6 را عدد اعشاری معرفی کرده اید (6.0ّF).

    موفق باشید

  8. #8
    کاربر تازه وارد آواتار parsamiga
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    71
    سلام

    نقل قول: چرا اخر عدد اعشاری باید suffix بذاریم؟ " 1.2f"
    --------------------------------------------------------------
    اگر suffix (f) رو نذاری کامپایلر به شما error میده دلیلش اینه که شما سغی میکنین که یک مقدار double رو در float ذخیره کنی


    نقل قول :این قسمت رو توضیح می دی که چرا از Convert استفاده میکنی؟ چرا Parse نمیشه؟

    کد:
    s = (Convert.ToSingle(s) + 1).ToString();
    متد parse هم میتونی استفاده کنی ، این متد string رو به number تبدیل میکنه


    s = (
    float.Parse(s) + 1).ToString();


    در متد convert دقیقا می تونی نوعت رو مشخص کنی ToSingle

  9. #9

    نقل قول: مشکل در تبدیل نوع float و string به هم

    ببخشید من وقتی میخوام مقدار یک تکس باکس که مقدارش مثلا" "2.34" هستش رو وقتی با دستور float.parse("2.34") تبدیل میکنم مقدار اون یک عدد میشه با 10 رقم اعشار یعنی میشه 2.300005498778
    میشه لطفا منو راهنمایی کنید تا دقیقا همون عدد با دو رقم اعشار رو تو دیتابیش ذخیره کنم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •