2009-08-18 8 views
35
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."; 
     } 
    } 

Derzeit ist mein label4.Text etwas wie: "187.371698712637".Belassen Sie nur zwei Dezimalstellen nach dem Punkt

Ich brauche es, etwas zu zeigen, wie: „187.34“

Nur zwei Stellen nach dem Punkt. Kann mir jemand helfen?

+1

FYI - Ich denke, du meinst es sollte 187.3 * 7 *, nicht .34 –

Antwort

90

string.Format ist dein Freund.

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

angezeigt werden. Sie googelten den gleichen Ort, aber gab es keinen Kredit. :-) –

+0

Und wieder bin ich erstaunt über die Geschwindigkeit dieser Seite. Danke für die Hilfe, funktioniert super! –

+0

@Steve, yep sieht so aus! Wenigstens hast du mehr rep: P –

30
// 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/

bearbeiten

Keine Ahnung, warum sie verwendet "String" anstelle von "string", aber der Rest ist richtig.

+0

Danke, viel geholfen! –

+0

Zeichenfolge ist die gleiche wie Zeichenfolge in C#. Ich bin mir nicht sicher, warum die Sprache beides hat, aber es tut es. –

+0

Was zu verwenden ist eine gute Frage. Was passiert, wenn String später einer schnelleren String2-Klasse zugeordnet wird? Wird diese Klasse dieselbe Formatmethode haben? –

33

Wenn Sie nur zwei numlber hinter dem Komma nehmen Sie die Mathe-Klasse verwenden können, dass Sie die Rundenfunktion zum Beispiel:

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

Hope this Hilfe
Prost

+3

.round() ist .Round() – Zafar

+0

Dies ist genau das, was ich suche. –

+0

Ich habe Float-Wert. Wie kann ich das Gleiche tun? Ich versuchte oben Methode, aber es gibt Syntaxfehler kann Typ Float zu Doppel –

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

konvertieren Im Allgemeinen sind Antworten viel hilfreicher, wenn sie eine Erklärung enthalten, was der Code beabsichtigt ist, und warum das das Problem löst, ohne andere einzuführen. (Dieser Beitrag wurde von mindestens einem Benutzer gekennzeichnet, vermutlich weil er dachte, dass eine Antwort ohne Erklärung gelöscht werden sollte.) –

1

Alternativ Sie können auch den zusammengesetzten Operator F verwenden und dann angeben, wie viele Dezimalstellen nach der Dezimalzahl erscheinen sollen.

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

Es wird aufgerundet werden, also sei dir dessen bewusst.

Ich habe die allgemeine Dokumentation bezogen. Es gibt auch eine Menge anderer Formatierungsoperatoren, die Sie auschecken können.

Quelle: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx

3

können Sie verwenden diese

"String.Format (" {0: F2} "String Value);"

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

Diese

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

die Eigenschaft von Versuchen String

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

verfügt Hinweis: Dies kann nur verwendet werden anzuzeigen.

System.Math

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

Verwenden String Interpolation decimalVar:0.00

+0

Vielleicht können Sie Ihrer Frage mehr hinzufügen, vielleicht können Sie erklären, warum dies das Problem löst, einige Hintergrundinformationen zur Interpolation ? – miltonb

+0

stattdessen mit String.Format String-Interpolation ermöglicht einfacher und intuitiver String Formatierung. – emanuel

1

Versuchen Sie, diese verwenden:

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

Ausgang: 24,57

0

Einfache Lösung:

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

//output: 123.45 
Verwandte Themen