-4

サーバーの RAM の量をbiginit2470208 などの値を持つ列に格納するテーブルがあります。

しかし、データ注釈またはその他の検証を適用して、s470208 の代わりに 2 つだけを表示するにはどうすればよいでしょうか。?

常に 100 万で割り、数字の左側の数字を取得するという意味ですか?

4

2 に答える 2

2

1) これを自動千単位に使用します。

string GetByteString(long n) {
    int k=0;
    string u=" kMGTEP";
    while(n>1024) {
        n>>=10;
        k++;
    }
    return n.ToString() + u[k];
}

電話:

string s= GetByteString(1234567890123);
Debug.WriteLine(s);

2) しかし、常に MB を 20 だけシフトしたい場合:

long n = 123456789;
string MB = (n>>20).ToString();

ただし、n1MB を下回ると 0 が表示されます。

理由:

1 kB = 2^10 = 1<<10 = 1024;  
1 MB = 2^20 = 1<<20 = 1024*1024 = 1048576;  
1 GB = 2^30 = 1<<30 = 1024*1024*1024 = 1073741824;
于 2013-08-16T18:48:35.943 に答える