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

نام تاپیک: مشکل کد

  1. #1

    Post مشکل کد

    چرا کد زیر عدد اعشاری را جز خطاها حساب می کند مثلا 19.5 را جز ارور حساب کرده و ارور چاپ می کند.
    for (;;)
    {
    if ((double.TryParse(Console.ReadLine(), out nomre1) == false) || (nomre1 < 0.00) || (nomre1 > 20.00))
    {
    Console.WriteLine("Error: Invalid input!");
    }
    }

  2. #2

    نقل قول: مشکل کد

    برای من که درست کار میکنه. مطمئنید متغیر از نوع double هست؟

  3. #3

    نقل قول: مشکل کد

    نقل قول نوشته شده توسط mahdavi1385 مشاهده تاپیک
    چرا کد زیر عدد اعشاری را جز خطاها حساب می کند مثلا 19.5 را جز ارور حساب کرده و ارور چاپ می کند.
    for (;;)
    {
    if ((double.TryParse(Console.ReadLine(), out nomre1) == false) || (nomre1 < 0.00) || (nomre1 > 20.00))
    {
    Console.WriteLine("Error: Invalid input!");
    }
    }
    در تنظیمات Region and Language سیستم عامل بر اساس زبان و تنظیمات دلخواه کاربر فرمت متفاوتی برای اعداد بکار برده میشه، کاملا متفاوت از سایر فرمت ها.
    مثلا بصورت پیشفرض فرانسوی زبان ها برای مشخص کردن اعشار بجای نقطه از ویرگول استفاده می کنند و از کاراکتر فاصله برای جدا کردن سه رقم سه رقم.
    در حالی که برای آلمانی زبان ها از نقطه برای جدا کردن سه رقم سه رقم استفاده میشه.
    می توانیم بررسی کنیم که فرضا در تنظیمات فعلی سیستم عامل (CurrentCulture) کاراکتر جداکننده اعشار چیست :

    var s = System.Globalization.CultureInfo.CurrentCulture. NumberFormat.NumberDecimalSeparator;
    Console.WriteLine(s);


    بصورت پیشفرض NET. از همون تنظیمات فعلی سیستم عامل (CurrentCulture) استفاده می کنه، پس اگر فرمت ورودی کاربر مشابه تنظیمات سیستم نباشه ممکنه نتایج نامناسبی بگیرید.
    اما همیشه می توانید بجای تنظیمات پیشفرض خودتان صریحا تنظیمات فرمت خاصی رو بکار ببرید، مثلا InvariantCulture برای یک حالت استاندارد مستقل از زبان.

    double value;
    double.TryParse("123.4", System.Globalization. NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out value);

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

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