フォルダのサイズを計測するツールを作っていますが、decimal型の計算がおかしくなります。フォルダのサイズの取得は正しくできているのですが、バイトからキロバイトへ変換するために「/1000」をしたとたん、数値がでたらめなものに変わってしまいます。
例えば、下記ソースコードでsizeの戻り値は「171102256910」だったのに、/1000をした戻り値は「1454.104718460709326599584」となっています。これはいったい何が起こっているのでしょうか?
###ソースコード
C#
1public decimal GetDirSize(DirectoryInfo dirInfo) 2{ 3 decimal size = 0; 4 5 foreach (FileInfo fi in dirInfo.GetFiles()) 6 { size += fi.Length; } 7 8 foreach (DirectoryInfo di in dirInfo.GetDirectories()) 9 { size += GetDirSize(di); } 10 11 return size/1000; 12 //return size; 13}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/10 02:33