0

一部の人々は、ギガバイトを 10 進数として使用することで、使用可能なストレージ スペースを正確に格納することができると考えているようです。これをバイト表現に変換する次のコードを用意しました。

Convert.ToString(Convert.ToInt64(Math.Floor(someDecimal * 1024 * 1024)));

これは機能しますが (as-in は期待される結果を返します)、正確にはエレガントではありません。

この種の変換を行うためのよりエレガントな方法はありますか? (床が必要です)。

4

3 に答える 3

5

これを使用してみませんか:

var result = ((Int64)(someDecimal * 1024 * 1024 * 1024)).ToString();

もちろん、これは何らかのヘルパー メソッドでカプセル化する必要があります。コード全体に散らばってほしくありません。

于 2012-11-06T08:46:23.607 に答える
2

試す:

(someDecimal * Math.Pow(1024,3) - 0.5m).ToString("F0")
于 2012-11-06T08:55:59.237 に答える
0

この行を別のメソッド (たとえば、gigabytesToBytes(someDecimal)) に移動することを検討してください。これにより、意図が明確になり、コメントで発見されたようなバグを見つけた場合は、1 か所で修正できます。

于 2012-11-06T08:46:46.377 に答える