【发布时间】:2012-12-15 22:17:22
【问题描述】:
这是将仅包含数字的文本格式化为 $ 货币的功能
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") 转换。
或者也许解析后的字符串也可以直接转换为字符串?
请告诉我你的意见。
【问题讨论】:
-
与其在 Parse 周围包装异常处理程序,不如使用 TryParse 更容易: Decimal.TryParse("$1.00", Globalization.NumberStyles.Currency,
-
MessageBox.Show(int.Parse("$3,821.00", NumberStyles.Currency).ToString()); -
@spajce 您的代码仅在我的 CultureInfo 为“en-US”时才有效,即 $。但如果我把其他像“id-ID”这样的印尼盾,它就不会解析回来
标签: c# string parsing currency cultureinfo