我怎么做它会显示文件大小只有点(点)后的两位数?

时间:2014-06-21 06:22:16

标签: c# .net winforms

public static string FormatSize(double size)
        {
            const long BytesInKilobytes = 1024;
            const long BytesInMegabytes = BytesInKilobytes * 1024;
            const long BytesInGigabytes = BytesInMegabytes * 1024;
            const long BytesInTerabytes = BytesInGigabytes * 1024;

            Tuple<double, string> unit;
            if (size < BytesInTerabytes)
                if (size < BytesInGigabytes)
                    if (size < BytesInMegabytes)
                        if (size < BytesInKilobytes)
                            unit = Tuple.Create(size, "B");
                        else
                            unit = Tuple.Create(size / BytesInKilobytes, "KB");
                    else
                        unit = Tuple.Create(size / BytesInMegabytes, "MB");
                else
                    unit = Tuple.Create(size / BytesInGigabytes, "GB");
            else
                unit = Tuple.Create(size, "TB");

            return String.Format("{0} {1}",unit.Item1,  unit.Item2);
        }

在这种情况下,我看到KB,我得到的是:116.1234567890 KB我得到十点后的数字。 我怎么能在点之后只给出两位数?

2 个答案:

答案 0 :(得分:5)

只需使用任何标准的.NET格式文字。要获得小数点后两位数的数值,可以使用{0:n2}

 return String.Format("{0:n2} {1}", unit.Item1, unit.Item2);

这应该给你:

116.12 KB 

有关详细信息,请参阅Standard Numeric Format Strings上的MSDN文档。

答案 1 :(得分:2)

使用Math.Round

return String.Format("{0} {1}",Math.Round(unit.Item1, 2),  unit.Item2);