اترك اثنين فقط من الأماكن العشرية بعد النقطة

StackOverflow https://stackoverflow.com/questions/1291483

  •  18-09-2019
  •  | 
  •  

سؤال

public void LoadAveragePingTime()
{
    try
    {
        PingReply pingReply = pingClass.Send("logon.chronic-domination.com");
        double AveragePing = (pingReply.RoundtripTime / 1.75);

        label4.Text = (AveragePing.ToString() + "ms");                
    }
    catch (Exception)
    {
        label4.Text = "Server is currently offline.";
    }
}

حاليا Label4.Text تحصل على شيء مثل: "187.371698712637".

أحتاجها لإظهار شيء مثل: "187.37"

وظيفتين فقط بعد نقطة. يمكن للشخص مساعدتي؟

هل كانت مفيدة؟

المحلول

string.Format هو صديقك.

String.Format("{0:0.00}", 123.4567);      // "123.46"

نصائح أخرى

إذا كنت ترغب في تناول رقمين بعد فاصلة، فيمكنك استخدام فئة الرياضيات التي تمنحك الوظيفة المستديرة على سبيل المثال:

float value = 92.197354542F;
value = (float)System.Math.Round(value,2);         // value = 92.2;

نأمل أن تكون هذه المساعدة
هتافات

// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"

http://www.csharp-examples.net/string-format-double/

تعديل

لا فكرة لماذا استخدموا "السلسلة" بدلا من "السلسلة"، ولكن الباقي صحيح.

double amount = 31.245678;
amount = Math.Floor(amount * 100) / 100;

يمكنك استخدام هذا

"string.format (" {0: f2} "، قيمة السلسلة)؛"

    // give you only the two digit after Dot, excat two digit.

بدلا من ذلك، يمكنك أيضا استخدام المشغل المركب F ثم يشير إلى عدد المواقع العشرية التي ترغب في ظهورها بعد العشرية.

string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568

سوف تقرر حتى أن تكون على دراية بذلك.

لقد أصدرت الوثائق العامة. هناك طن من مشغلي التنسيق الآخرين هناك أيضا قد تحقق.

مصدر: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx.

جرب هذا

public static string PreciseDecimalValue(double Value, int DigitsAfterDecimal)
        {
            string PreciseDecimalFormat = "{0:0.0}";

            for (int count = 2; count <= DigitsAfterDecimal; count++)
            {
                PreciseDecimalFormat = PreciseDecimalFormat.Insert(PreciseDecimalFormat.LastIndexOf('}'), "0");
            }
            return String.Format(PreciseDecimalFormat, Value);
        }

باستخدام خاصية String

double value = 123.456789;
String.Format("{0:0.00}", value);

ملاحظة: يمكن استخدام هذا لعرض فقط.

استخدام System.Math

double value = 123.456789;
System.Math.Round(value, 2);

جرب هذا:

double result = Math.Round(24.576938593,2);
MessageBox.Show(result.ToString());

الإخراج: 24.57.

حل بسيط:

double totalCost = 123.45678;
totalCost = Convert.ToDouble(String.Format("{0:0.00}", totalCost));

//output: 123.45
yourValue.ToString("0.00") will work.

استخدام سلسلة الاستيفاء decimalVar:0.00

double doublVal = 123.45678;

هناك طريقتان.

  1. لعرضها في السلسلة:

    String.Format("{0:0.00}", doublVal );
    
  2. للحصول مرة أخرى مزدوجة

    doublVal = Convert.ToDouble(String.Format("{0:0.00}", doublVal ));
    
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top