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我得到十点后的数字。 我怎么能在点之后只给出两位数?
答案 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)
return String.Format("{0} {1}",Math.Round(unit.Item1, 2), unit.Item2);