如何将格式化的字符串转换回原始值?

时间:2012-01-12 14:10:57

标签: .net

我只想知道如何格式化字符串,如$ 100,000.00 我已经使用了一种拆分方法,但是当它有很多“,”时它就不起作用了。

4 个答案:

答案 0 :(得分:1)

在格式化之前,您需要暂停它们。在格式化之后尝试对数字进行计算会被延迟,并且容易出错。特别是如果您的应用程序曾在不同的区域设置下使用,其中千位分隔符和小数点字符不是您期望的那样。

此外,请注意,String.Split方法无论有多少“,”都可以正常工作,因此您的问题不是拆分方法,而是代码中的其他方法。

答案 1 :(得分:0)

decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);

输出以下内容:

订单总额: $ 1,921.39

或者

String.Format("{0:#,###}", bigNumber);

答案 2 :(得分:0)

您可以在示例中使用解析方法的NumberStyles枚举重载。 e.g。

string money1 = "$100,000.00";
string money2 = "$300,500.00";
Double unformattedMoney = Double.Parse(money1, System.Globalization.NumberStyles.Any);
Double unformattedMoney2 = Double.Parse(money2, System.Globalization.NumberStyles.Any);

Console.WriteLine(unformattedMoney + unformattedMoney2);

作为旁注,这不会导致错误的数字,如果您尝试格式化错误的字符串,则会抛出错误。

答案 3 :(得分:0)

如果您具体谈论货币,请查看此Convert any currency string to double

这个想法是使用NumberStyle类。 希望这有帮助