//************************************************************************
// author: yuzhengyang
// date: 2017.5.18 - 2017.6.10
// desc: 计算机字节单位转换工具
// Copyright (c) yuzhengyang. All rights reserved.
//************************************************************************
using System;
namespace Azylee.Core.DataUtils.UnitConvertUtils
{
///
/// 计算机字节单位转换工具
///
public class ByteConvertTool
{
///
/// 自动格式化字节单位
///
///
///
///
public static string Fmt(long size, int digits = 2)
{
string rs = "";
if (size >= 1024 * 1024 * 1024)
{
rs = Math.Round((double)size / 1024 / 1024 / 1024, digits) + " GB";
}
else if (size >= 1024 * 1024)
{
rs = Math.Round((double)size / 1024 / 1024, digits) + " MB";
}
else if (size >= 1024)
{
rs = Math.Round((double)size / 1024, digits) + " KB";
}
else
{
rs = size + " B";
}
return rs;
}
///
/// 自动格式化字节单位
///
///
///
///
public static string Fmt(double size, int digits = 2)
{
string rs = "";
if (size >= 1024 * 1024 * 1024)
{
rs = Math.Round(size / 1024 / 1024 / 1024, digits) + " GB";
}
else if (size >= 1024 * 1024)
{
rs = Math.Round(size / 1024 / 1024, digits) + " MB";
}
else if (size >= 1024)
{
rs = Math.Round(size / 1024, digits) + " KB";
}
else
{
rs = size + " B";
}
return rs;
}
///
/// 根据单位换算
///
///
///
///
///
public static double Cvt(long size, string unit, int digits = 2)
{
double rs = 0;
switch (unit)
{
case "B": rs = size; break;
case "KB": rs = (double)size / 1024; break;
case "MB": rs = (double)size / 1024 / 1024; break;
case "GB": rs = (double)size / 1024 / 1024 / 1024; break;
default: rs = size; break;
}
return Math.Round(rs, digits);
}
///
/// 根据单位换算
///
///
///
///
///
public static double Cvt(double size, string unit, int digits = 2)
{
double rs = 0;
switch (unit)
{
case "B": rs = size; break;
case "KB": rs = size / 1024; break;
case "MB": rs = size / 1024 / 1024; break;
case "GB": rs = size / 1024 / 1024 / 1024; break;
default: rs = size; break;
}
return Math.Round(rs, digits);
}
}
}