2016-11-24 54 views
0

我發現從用戶這個代碼在不同的問題,但我無法弄清楚如何獲得的參數爲這些方法(我是新)C#位爲千兆等計算器

public static class Ext 
{ 
    private const long OneKb = 1024; 
    private const long OneMb = OneKb * 1024; 
    private const long OneGb = OneMb * 1024; 
    private const long OneTb = OneGb * 1024; 

    public static string ToPrettySize(this int value, int decimalPlaces = 0) 
    { 
     return ((long)value).ToPrettySize(decimalPlaces); 
    } 

    public static string ToPrettySize(this long value, int decimalPlaces = 0) 
    { 
     var asTb = Math.Round((double)value/OneTb, decimalPlaces); 
     var asGb = Math.Round((double)value/OneGb, decimalPlaces); 
     var asMb = Math.Round((double)value/OneMb, decimalPlaces); 
     var asKb = Math.Round((double)value/OneKb, decimalPlaces); 
     string chosenValue = asTb > 1 ? string.Format("{0}Tb",asTb) 
      : asGb > 1 ? string.Format("{0}Gb",asGb) 
      : asMb > 1 ? string.Format("{0}Mb",asMb) 
      : asKb > 1 ? string.Format("{0}Kb",asKb) 
      : string.Format("{0}B", Math.Round((double)value, decimalPlaces)); 
     return chosenValue; 
    } 
} 

Does .NET provide an easy way convert bytes to KB, MB, GB, etc.?

我需要製作一個計算器,它可以將位轉換成兆字節,其他所有的字節也可以以千兆字節爲單位轉換成幾位字節。在一個C#控制檯應用程序中。並將計算顯示給用戶。

+0

使用此方法,您只需獲得像meFile.Length這樣的大小(以字節爲單位)並調用此方法。這可以通過兩種方式完成。 **首先**在文件頂部添加'using namespace;',然後調用'meFile.Length.ToPrettySize(2);'** second **省略'using'部分,然後調用'Ext.ToPrettySize(meFile .Length,2)' –

回答

0

只有一種重載方法,ToPrettySize()。只需傳入一個數字和所需的小數位數。

Console.WriteLine(Ext.ToPrettySize(1024000, 2)); // 1000Kb 
+0

這很好用,會讓用戶有能力選擇他在輸入什麼單位,以及他想用這個單位輸出什麼? –

+0

這是方法旨在爲您設置單位,但您可以修改它以指定所需的單位。 –