在货币数据C#中查找货币符号

Dev*_*Fin 3 c#

我想在货币格式数据中找到哪个货币符号.

例如,输入字符串= $ 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部分.我不知道如何从字符串中提取货币符号.

Nat*_*han 6

听起来你已经知道如何将字符串解析为数字类型(如果我错了,请纠正我).你double在你的例子中使用,我会建议,decimal但这是你的选择.

要获取货币符号,您可以使用简单的正则表达式

Regex ex = new Regex(@"\p{Sc}");
CurrencySymbol = ex.Match(input).Value;
Run Code Online (Sandbox Code Playgroud)

我希望有所帮助.