繁体   English   中英

C#将字节转换为兆字节后,如何缩短双精度?

[英]C# How do I shorten my double when I converted bytes to megabytes?

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

效果不错,但有一个小问题,例如返回巨大的数字,
20MB的文件将显示为:20.26496724167345 MB

我如何使这个数字短一点,例如20.26MB

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

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

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

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

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

要么

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

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

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

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

对于四舍五入,您可以使用

Math.Round((bytes / 1024f) / 1024f, 2);

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

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

注意:因为浮点数没有无限的精度,所以这可能会导致像24.24999999999999999而不是24.25。 这个方法值得一提,但是如果您将其输出为字符串,则应该像其他答案一样使用格式化字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM