只保留小数点后两位

105
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"

只保留小数点后两位。有人能帮忙吗?


2
FYI - 我认为你的意思是应该显示187.3 * 7,而不是0.34。 - Matt Grande
13个回答

2

另外,您还可以使用复合运算符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


1
使用字符串插值 decimalVar:0.00

也许你可以在你的问题中添加更多内容,比如解释一下为什么这个方法可以解决问题,以及有关插值的一些背景知识? - miltonb
使用字符串插值而不是String.Format可以更轻松、更直观地格式化字符串。 - emanuel

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接