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. 將字符串十進制轉換爲十六進制數
- 5. 將字符串轉換爲十進制字符串並返回十進制
- 6. PHP將字符串轉換爲十六進制和十六進制字符串
- 7. 將ASCII字符轉換爲十六進制轉義字符串
- 8. 將十六進制字符串轉換爲字符串
- 9. 將字符串轉換爲十六進制字符串
- 10. Swift3將字符串值轉換爲十六進制字符串
- 11. 轉換該字符串爲十進制
- 12. 字符串爲十六進制和十六進制轉換爲字符串
- 13. 將十六進制字符串轉換爲無符號字符[]
- 14. 將十六進制字符串轉換爲二進制
- 15. 將二進制長字符串轉換爲十六進制c#
- 16. 十進制轉換爲十六進制字符串
- 17. 將字符轉換爲十六進制
- 18. 十進制數字符串轉換爲十六進制的字符串
- 19. WPF C#字符串轉換爲十進制,十進制到字符串問題
- 20. 將字符串轉換爲十六進制的字符集?
- 21. 將十六進制字符串轉換爲無符號十進制值
- 22. 將二進制字符串轉換爲十六進制字符串C
- 23. 將十六進制字符串轉換爲二進制字符串 - Java
- 24. 將二進制字符串轉換爲十進制c字符串#
- 25. 將二進制字符串(SecureRandom.random_bytes)轉換爲十六進制字符串?
- 26. 將十六進制字符串轉換爲32位二進制字符串
- 27. 將十六進制字符串轉換爲二進制字符串
- 28. 將字節數組轉換爲十六進制十進制字符串
- 29. java:將十六進制數字字符串轉換爲十進制
- 30. 如何將十六進制字符串轉換爲十六進制字節?
+1,我不知道通過NumberStyles。儘管我仍然使用TryParse(我注意到它需要相同的參數)... – 2009-10-28 12:52:34
我喜歡這一點。雖然貨幣如何變化? – 2009-10-28 12:57:54
@LB:如果你在處理多種貨幣,我會一次解析它們。由於這些數值本身並不是真正可比的(即15美元= 15美元),所以將它們全部放在單個數組中是沒有意義的。 – 2009-10-28 13:01:25