4
A
回答
21
我在这里假设您要解析的字符串是实际的货币值。
CultureInfo c = CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name);
c.NumberFormat.CurrencyNegativePattern = 14; // From MSDN -- no enum values for this
c.NumberFormat.CurrencySymbol = "USD";
decimal d = Decimal.Parse("(USD 92.90)", NumberStyles.Currency, c);
6
您可以从reg-exp开始提取数字部分,然后使用Decimal.TryParse解析子字符串。
1
首先,从字符串中获取数字。一个正则表达式\d+(.\d+)?
可能会有帮助。尽管可以使用子字符串,但如果该数字周围的字符总是相同的话。
然后对该字符串使用Decimal.Parse(或Double.Parse)。
0
当解析字符串,我总是喜欢使用的TryParse,以免被抛出无效的字符串例外:
string str = "(USD 92.90)";
decimal result;
if (Decimal.TryParse(str, out result))
{
// the parse worked
}
else
{
// Invalid string
}
正如其他人说,首先使用正则表达式只提取数字部分。
相关问题
- 1. 如何将十六进制字符串转换为十进制?
- 2. 将字符串转换为十六进制到十六进制
- 3. 将字符串转换为十进制字符串并返回十进制
- 4. 将ASCII字符转换为十六进制转义字符串
- 5. 将十六进制字符串转换为字符串
- 6. Swift3将字符串值转换为十六进制字符串
- 7. 字符串为十六进制和十六进制转换为字符串
- 8. 将二进制长字符串转换为十六进制c#
- 9. WPF C#字符串转换为十进制,十进制到字符串问题
- 10. 十进制数字符串转换为十六进制的字符串
- 11. 将字符串转换为十六进制的字符集?
- 12. 将十六进制字符串转换为无符号十进制值
- 13. 将二进制字符串转换为十进制c字符串#
- 14. 将十六进制字符串转换为32位二进制字符串
- 15. 将十六进制字符串转换为二进制字符串
- 16. 将字节数组转换为十六进制十进制字符串
- 17. 将十进制转换为十进制字符
- 18. 转换十六进制字符串转换为十进制在C++
- 19. 字符串转换为从ANSI /十六进制字符串
- 20. 将十六进制字符串转换为Java中的字节
- 21. Python将十进制数字转换为不带“。”的字符串。
- 22. 将包含字符串的[]字节转换为十进制值
- 23. 将10位数字转换为十六进制字符串
- 24. 将字符串转换为十进制 - 保留数字
- 25. 将URL的十六进制数字转换为字符串
- 26. 将十六进制字符串转换为C++中的字节
- 27. 从十六进制字符串转换为十六进制字符数组
- 28. 将十六进制字符串转换为c中的十进制数
- 29. 如何将十六进制字符串转换为十六进制?
- 30. EZGPIB:将十进制字符串转换为十六进制(Delphi脚本Pascal)
+1,我不知道通过NumberStyles。尽管我仍然使用TryParse(我注意到它需要相同的参数)... – 2009-10-28 12:52:34
我喜欢这一点。虽然货币如何变化? – 2009-10-28 12:57:54
@LB:如果你在处理多种货币,我会一次解析它们。由于这些数值本身并不是真正可比的(即15美元= 15美元),所以将它们全部放在单个数组中是没有意义的。 – 2009-10-28 13:01:25