因为有些人显然认为千兆字节作为十进制是准确存储可用存储空间的好方法,所以我现在有以下代码将其转换为字节表示:
Convert.ToString(Convert.ToInt64(Math.Floor(someDecimal * 1024 * 1024)));
现在虽然这有效(如返回预期结果),但它并不完全优雅。
有没有更优雅的方式来进行这种转换?(地板是必要的)。
因为有些人显然认为千兆字节作为十进制是准确存储可用存储空间的好方法,所以我现在有以下代码将其转换为字节表示:
Convert.ToString(Convert.ToInt64(Math.Floor(someDecimal * 1024 * 1024)));
现在虽然这有效(如返回预期结果),但它并不完全优雅。
有没有更优雅的方式来进行这种转换?(地板是必要的)。
你为什么不直接使用这个:
var result = ((Int64)(someDecimal * 1024 * 1024 * 1024)).ToString();
当然,这应该封装在一些辅助方法中。您不希望在您的代码中散布这些内容。
尝试:
(someDecimal * Math.Pow(1024,3) - 0.5m).ToString("F0")
考虑将此行移至单独的方法(例如gigabytesToBytes(someDecimal)
)。这将使您的意图更加清晰,如果您发现错误 - 就像评论中发现的错误 - 您可以在一个地方修复它们。