/// <summary> /// Reduce a filesize (in kb) to the maximum target number of leading signifigant digits /// </summary> public static double GetReducedSize(long size, int targetNumberOfDigits, out FileSizeType fileSizeType) { long ReducedSize = size; var FileSizeTypes = Enum.GetValues <FileSizeType>().Where(x => size > x.GetCustomAttribute <ValueAttribute>().Value); fileSizeType = FileSizeTypes.Any() ? FileSizeTypes.Max() : FileSizeType.Kb; long FileSizeTypeModifier = fileSizeType.GetCustomAttribute <ValueAttribute>().Value; return(Math.Round(size / (double)FileSizeTypeModifier, 2)); }