点后面只留下两位小数

Ser*_*pia 60 c# ping decimal-point

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.";
    }
}
Run Code Online (Sandbox Code Playgroud)

目前我的label4.Text得到类似的东西:"187.371698712637".

我需要它来表示:"187.34"

DOT后只有两个帖子.有人可以帮我吗?

Mat*_*nde 135

string.Format 是你的朋友.

String.Format("{0:0.00}", 123.4567);      // "123.46"
Run Code Online (Sandbox Code Playgroud)

  • 是的,这就是你有11k的原因. (7认同)
  • 这会更改小数的类型,如果您想要小数,则需要再次转换回十进制.我认为Math.Round(x,2)是更好的答案,如果你想保持小数而不来回转换.如果大于5,将第3位数字舍入到第2位也是有意义的. (4认同)
  • 我再次对这个网站的速度感到惊讶。感谢您的帮助,效果很好! (3认同)
  • 你用Google搜索同一个地方,但没有给它信任.:-) (2认同)
  • 是的,这取决于你需要什么。在这种情况下,他需要一根绳子,所以这就是我展示的。另外,需要明确的是,`String.Format` 处理舍入的方式与`Math.Round` 相同。 (2认同)

小智 56

如果你想在逗号之后只用两个数字,你可以使用给你圆函数的数学类,例如:

float value = 92.197354542F;
value = (float)System.Math.Round(value,2);         // value = 92.2;
Run Code Online (Sandbox Code Playgroud)

希望这有助于
干杯

  • .round()是.Round() (4认同)

Ste*_*dit 29

// 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"
Run Code Online (Sandbox Code Playgroud)

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

编辑

不知道为什么他们使用"String"而不是"string",但其余的都是正确的.

  • 我认为使用String进行静态函数调用是首选的样式 (4认同)
  • .Net有System.String或简称String.C#有string,一个映射到System.String的本机类型.您可以使用一个代替另一个,但在编写C#时,没有理由使用非C#名称,即使在静态中也是如此.当然,由于常见的FormatWith扩展方法,是否为静态调用大写字符串的问题变得不那么重要了. (3认同)

Sum*_*shi 10

yourValue.ToString("0.00") will work.
Run Code Online (Sandbox Code Playgroud)


小智 6

你可以用这个

"String.Format("{0:F2}", 字符串值);"

只给你 Dot 之后的两位数,正好是两位数。


小智 5

double amount = 31.245678;
amount = Math.Floor(amount * 100) / 100;
Run Code Online (Sandbox Code Playgroud)

  • 通常,如果答案包括对代码意图的解释,以及为什么不引入其他代码就能解决问题的原因,则答案会更有帮助。(此帖子被至少一个用户标记,大概是因为他们认为应删除无解释的答案。) (2认同)

小智 5

尝试这个:

double result = Math.Round(24.576938593,2);
MessageBox.Show(result.ToString());
Run Code Online (Sandbox Code Playgroud)

输出:24.57