src/DotNetCommon.Core/UnitConvertor.cs

(开头部分) 10KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Text.RegularExpressions;

namespace DotNetCommon
{
    /// <summary>
    /// 计算机存储单位间的换算,涉及到的转换单位:B、KB、MB、GB、TB
    /// </summary>
    public static class UnitConverter
    {
        private const double KiloBytes = 1024;
        private const double MegaBytes = KiloBytes * KiloBytes;
        private const double GigaBytes = KiloBytes * MegaBytes;

        /// <summary>
        /// 将字节大小的值转成人类易读的字符串
        /// </summary>
        /// <param name="bytes">字节大小</param>
        public static string Humanize(double bytes)
        {
            var abs = System.Math.Abs(bytes);
            if (abs == 0) return $"0 B";

            if (abs >= GigaBytes)
            {
                return $"{bytes / GigaBytes:#,#.##} GB";
            }

            if (abs >= MegaBytes)
            {
                return $"{bytes / MegaBytes:#,#.##} MB";
            }

            if (abs >= KiloBytes)
            {
                return $"{bytes / KiloBytes:#,#.##} KB";
            }

            return $"{bytes:#,#} B";
        }

        /// <summary>
        /// 将 <c>B</c> 转成 <c>MB</c>
        /// </summary>
        public static double BytesToMegaBytes(this double bytes) => bytes / MegaBytes;

        /// <summary>
        /// 将 <c>B</c> 转成 <c>GB</c>
        /// </summary>
        public static double BytesToGigaBytes(this double bytes) => bytes / MegaBytes / KiloBytes;

        /// <summary>
        /// 将 <c>KB</c> 转成 <c>MB</c>
        /// </summary>
        public static double KiloBytesToMegaBytes(this double kiloBytes) => kiloBytes / KiloBytes;

        /// <summary>
        /// 将 <c>MB</c> 转成 <c>GB</c>
        /// </summary>
        public static double MegaBytesToGigaBytes(this double megaBytes) => megaBytes / KiloBytes;
后面还有 228 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。