是否有解析方法,例如:
1,250,000 = 1.25M
10,000,000 = 10M
10,500,000 = 10.5M
47,600,000,000 = 47.6B
换句话说,我需要将47.6B解析为double。我知道我可以手动执行此操作,我想知道是否有直接的方法,比如使用IFormatter
?
答案 0 :(得分:2)
不,.Net框架中没有这样的方法(并且没有相反的方法可以格式化这样的值)。
您需要找到自己编写的库或自己编写方法。
请注意,K / M可能意味着2 ^ 10/2 ^ 20或10 ^ 3/10 ^ 6并且可能是特定于语言的(同样,此信息在.Net框架中不存在,您可以从{{1信息)
答案 1 :(得分:0)
可以调整此处的一些代码:
只需指定您自己的已识别十进制“收缩”单位列表:
59
然后就这样使用它:
Nothing -> 1.0
在解析器中使用 static FileSizeConverter()
{
// decimal "contraction" units
knownUnits = new Dictionary<string, long>
{
{ "", 1L },
{ "M", 1000L * 1000L }, // million
{ "B", 1000L * 1000L * 1000L } // billion (usa)
// fill rest as needed
};
numberFormat = System.Globalization.CultureInfo.CurrentCulture.NumberFormat;
}
,或者如果您需要,则从 var converter = new FileSizeConverter();
Console.WriteLine(converter.Parse("1.25M"));
Console.WriteLine(converter.Parse("10M"));
Console.WriteLine(converter.Parse("10.5M"));
Console.WriteLine(converter.Parse("47.6B"));
转换为double
。
decimal