2009-08-18 75 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."; 
     } 
    } 

當前我的標籤4.Text得到的是類似於「187.371698712637」的。在點後只留下兩位小數點

我需要它顯示是這樣的:後點「187.34」

只有兩個職位。有人可以幫我嗎?

+1

僅供參考 - 我認爲你的意思是它應該顯示187.3 * 7 *,而不是.34 – 2009-08-18 02:27:31

回答

90

string.Format是你的朋友。

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

你谷歌搜索了同一個地方,但沒有給它信用。 :-) – 2009-08-18 02:27:20

+0

我再次對這個網站的速度感到驚訝。感謝您的幫助,效果很好! – 2009-08-18 02:29:10

+0

@Steve,yep看起來這樣!至少你得到了更多的代表:P – 2009-08-18 02:41:57

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/

編輯

不知道爲什麼他們用 「字符串」,而不是 「串」,但其餘的是正確的。

+0

謝謝,幫了很多! – 2009-08-18 02:30:39

+0

字符串與C#中的字符串相同。我不確定爲什麼這種語言既有,也有。 – 2009-08-18 02:32:28

+0

使用哪一個是個好問題。如果字符串稍後映射到更快的String2類會發生什麼?該類是否具有相同的Format方法? – 2009-08-18 02:35:06

33

如果你想利用短短兩年numlber逗號後,您可以使用數學課堂,讓您例如輪函數:

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

希望這會幫助
乾杯

+3

.round()是.Round() – Zafar 2016-02-03 20:50:04

+0

這正是我正在尋找的。 – 2016-06-20 17:52:18

+0

我有浮動價值。所以我怎麼能做同樣的事情。我嘗試了上面的方法,但它給出了語法錯誤,無法將類型float轉換爲double – 2017-04-27 06:22:23

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

一般來說,如果答案包含對代碼意圖做什麼的解釋,以及爲什麼解決問題而不介紹其他問題,則答案會更有幫助。 (這篇文章被至少一個用戶標記,大概是因爲他們認爲沒有解釋的答案應該被刪除。) – 2015-04-30 01:24:49

1

或者,您也可以使用複合算子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

3

可以使用此

「的String.Format(」{0:F2} 「字符串值);」

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

嘗試這個

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

使用的String

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

注屬性:這隻能用於顯示。

使用System.Math

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

使用字符串插值decimalVar:0.00

+0

也許你可以添加更多的問題,也許你可以解釋爲什麼這樣可以解決問題,插值的一些背景? – miltonb 2017-01-05 20:08:35

+0

而不是使用String.Format字符串插值允許更簡單和更直觀的字符串格式。 – emanuel 2017-01-06 20:59:01

1

試試這個:

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

輸出:24.57

0

簡單的解決方案:

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

//output: 123.45 
相關問題