3

这是将仅包含数字的文本格式化为 $ 货币的功能

private String GLOBALIZE_TEXT(String originalText)
{
    decimal parsed;
    CultureInfo myCultureInfo;
    string formattedText = "";

    //use try catch to prevent larger inputs
    try
    {
        parsed = decimal.Parse(originalText, CultureInfo.InvariantCulture);
        myCultureInfo = new CultureInfo("$");
        formattedText = string.Format(myCultureInfo, "{0:c}", parsed);
    }
    catch (Exception ignorethis)
    {
    }
    return formattedText;
}

现在使用:

String myString = "3821";
myString = GLOBALIZE_TEXT(myString);
//now my String becomes "$3,821.00"

问题是,我可以再次将“$3,821.00”解析为“3821”吗?我需要将其解析回来,以便可以将其用作整数,其中“3821”可以转换为Convert.ToInt32("3821"). 或者也许解析的字符串也可以直接转换为字符串?

请让我知道你的意见。

4

2 回答 2

3

你可以试试:

double.Parse(myString, NumberStyles.Currency);

有关NumberStyles枚举的更多信息可以在 MSDN上找到,有关此特定double.Parse方法的更多信息可以在 MSDN 上找到

于 2012-12-15T22:34:14.783 回答
0

也许最好问问你为什么需要这样做?您应该始终尝试以本机格式存储值。如果您需要从捕获或导入的字符串中执行此操作,那么我会使用正则表达式来删除它。

正则表达式从字符串中删除任何货币符号?

于 2012-12-15T22:26:17.963 回答