我想在货币格式数据中找到哪个货币符号.
例如,输入字符串= $ 56.23
public class FormatConverter
{
private CultureInfo _cultureInfo;
public void UpdateCultureInfo()
{
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(
s => _cultureInfo = Thread.CurrentThread.CurrentCulture);
thread.Start();
thread.Join();
}
Bool TryParseCurrencySymbolAndValue(string input, out string CurrencySymbol,
out double value)
{
if(_cultureInfo == null)
UpdateCultureInfo();
try{
// Convert Currency data into double
value = Double.Parse(input, NumberStyles.Number | NumberStyles.AllowCurrencySymbol);
// How to extract Currency Symbol?
CurrencySymbol = "$";
return true;
}
catch(Exception ex){ /* Exception Handling */}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我想分别从字符串和56.23中提取"$"符号然后我想将CultureInfo应用到56.23到法语格式.产量应为56,23美元.
在某些情况下,输入可能是"欧元符号"或输入字符串开头或结尾的某些其他货币符号.
我知道如何转换为CurrentCulture for Numeric部分.我不知道如何从字符串中提取货币符号.
听起来你已经知道如何将字符串解析为数字类型(如果我错了,请纠正我).你double在你的例子中使用,我会建议,decimal但这是你的选择.
要获取货币符号,您可以使用简单的正则表达式
Regex ex = new Regex(@"\p{Sc}");
CurrencySymbol = ex.Match(input).Value;
Run Code Online (Sandbox Code Playgroud)
我希望有所帮助.