public static string GetAutoSizeString(object source, DataSizeType soucetype = DataSizeType.B) { string s = source.ToString(); decimal d = Convert.ToDecimal(source); DataSizeType type = soucetype; while (d > 1000m && type != DataSizeType.T) { type = UpgradeSizeType(type); d = GetSizeString(source, soucetype, type); } s = d.ToString("f2") + type.ToString(); return(s); }
private static DataSizeType UpgradeSizeType(DataSizeType type) { switch (type) { case DataSizeType.b: return(DataSizeType.B); case DataSizeType.B: return(DataSizeType.K); case DataSizeType.K: return(DataSizeType.M); case DataSizeType.M: return(DataSizeType.G); case DataSizeType.G: return(DataSizeType.T); default: return(DataSizeType.T); } }
private static DataSizeType DegradingSizeType(DataSizeType type) { switch (type) { case DataSizeType.T: return(DataSizeType.G); case DataSizeType.G: return(DataSizeType.M); case DataSizeType.M: return(DataSizeType.K); case DataSizeType.K: return(DataSizeType.B); case DataSizeType.B: return(DataSizeType.b); default: return(DataSizeType.b); } }
public static decimal GetSizeString(object source, DataSizeType sourceType, DataSizeType targetType) { //string s = string.Empty; decimal sv = Convert.ToDecimal(source); decimal st = 0; switch (sourceType) { case DataSizeType.b: switch (targetType) { case DataSizeType.b: st = sv; break; case DataSizeType.B: st = sv / SizeBase; break; case DataSizeType.K: st = sv / SizeBase2; break; case DataSizeType.M: st = sv / SizeBase3; break; case DataSizeType.G: st = sv / SizeBase4; break; case DataSizeType.T: st = sv / SizeBase5; break; } break; case DataSizeType.B: switch (targetType) { case DataSizeType.b: st = sv * SizeBase; break; case DataSizeType.B: st = sv; break; case DataSizeType.K: st = sv / SizeBase; break; case DataSizeType.M: st = sv / SizeBase2; break; case DataSizeType.G: st = sv / SizeBase3; break; case DataSizeType.T: st = sv / SizeBase4; break; } break; case DataSizeType.K: switch (targetType) { case DataSizeType.b: st = sv * SizeBase2; break; case DataSizeType.B: st = sv * SizeBase; break; case DataSizeType.K: st = sv; break; case DataSizeType.M: st = sv / SizeBase; break; case DataSizeType.G: st = sv / SizeBase2; break; case DataSizeType.T: st = sv / SizeBase3; break; } break; case DataSizeType.M: switch (targetType) { case DataSizeType.b: st = sv * SizeBase3; break; case DataSizeType.B: st = sv * SizeBase2; break; case DataSizeType.K: st = sv * SizeBase; break; case DataSizeType.M: st = sv; break; case DataSizeType.G: st = sv / SizeBase; break; case DataSizeType.T: st = sv / SizeBase2; break; } break; case DataSizeType.G: switch (targetType) { case DataSizeType.b: st = sv * SizeBase4; break; case DataSizeType.B: st = sv * SizeBase3; break; case DataSizeType.K: st = sv * SizeBase2; break; case DataSizeType.M: st = sv * SizeBase; break; case DataSizeType.G: st = sv; break; case DataSizeType.T: st = sv / SizeBase; break; } break; case DataSizeType.T: switch (targetType) { case DataSizeType.b: st = sv * SizeBase5; break; case DataSizeType.B: st = sv * SizeBase4; break; case DataSizeType.K: st = sv * SizeBase3; break; case DataSizeType.M: st = sv * SizeBase2; break; case DataSizeType.G: st = sv * SizeBase; break; case DataSizeType.T: st = sv; break; } break; } //s = st.ToString(); return(st); }
/// <summary> /// Initializes a new instance of the <see cref="DataSize" /> class. /// </summary> /// <param name="sizeType">size type</param> /// <param name="size">data size</param> internal DataSize(DataSizeType sizeType, int?size) { this.Size = size; this.SizeType = sizeType; }
/// <summary> /// Initializes a new instance of the <see cref="DataType" /> class. /// </summary> /// <param name="name">type name</param> /// <param name="type">size type</param> /// <param name="size">data size</param> internal DataType(string name, DataSizeType type, int?size) { this.TypeName = name; this.DataSize = new DataSize(type, size); }
/// <summary> /// Create data type instance /// </summary> /// <param name="name">data type name</param> /// <param name="type">size type</param> /// <param name="size">data size</param> /// <returns>data type instance</returns> internal static IDataType CreateDataType(string name, DataSizeType type, int?size = null) { return(new DataType(name, type, size)); }
/// <summary> /// Initializes a new instance of the <see cref="DataSize" /> class. /// </summary> /// <param name="type">data type</param> /// <param name="size">data size</param> internal DataSize(DataSizeType type, int?size) { this.dataSizeType = type; this.dataSize = size; }