0

您好,我制作了一个下载更新文件的更新程序,但我总是使用字节作为指示,现在
我找到了一种将其转换为兆字节的方法,

它工作得很好,但有一个小问题它返回了巨大的数字,例如,
一个 20MB 的文件将显示为: 20.26496724167345 MB

我如何使这个数字更短一些,比如 20.26MB

这是将其转换为 mb 的代码:

    static double B2MB(long bytes)
    {
        return (bytes / 1024f) / 1024f;
    }
4

3 回答 3

3

20.26496724167345 并不是一个巨大的数字。它刚刚超过 20。这是一个很长的文本表示,但那是另一回事。

您需要查看显示数字的位置。例如,您可能想要使用:

Console.WriteLine("{0:0.##}MB", value);

或者

Console.WriteLine("{0:F2}MB", value);

有关详细信息,请参阅自定义数字格式字符串标准数字格式字符串

于 2013-05-18T15:51:15.617 回答
2

为了在显示中使用它,您始终可以使用String.Format以下方法:

string mb = String.Format("{0:F2}MB", B2MB(bytes));

只需将其四舍五入,您就可以使用

Math.Round((bytes / 1024f) / 1024f, 2);
于 2013-05-18T15:54:29.633 回答
1

您可以使用 Math.round 舍入到指定的位数。如果你想要两个,就像在这种情况下一样,你可以像这样使用它:Math.Round(inputValue, 2);. 您的代码将如下所示:

static double B2MB(long bytes)
{
    return Math.Round((bytes / 1024f) / 1024f, 2);
}

注意:因为浮点数没有无限精度,这可能会导致类似 24.24999999999999999 而不是 24.25。这种方法值得了解,但如果您将其作为字符串输出,您应该考虑使用格式化字符串,就像其他答案一样。

于 2013-05-18T15:51:37.887 回答