2012-02-06 27 views
34

我有新的XmlDocument對象,例如: xml是在我的程序期間創建的...在數值中設置點而不是逗號

我希望創建的XML中的所有數值都是點符號而不是逗號默認情況下。

我可以做一些事情來聲明一次,而不是解析每個十進制值嗎?

I.e.在開始的某個地方設置這個點而不是逗號,不要擔心這個問題直到最後?

+0

如果你想在XML十進制點,但要使用十進制當向用戶顯示值時,你將不得不在現場指定它。沒有「僅在xml中使用點」設置。 – 2012-02-06 12:34:59

回答

73

試試這個:

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); 
customCulture.NumberFormat.NumberDecimalSeparator = "."; 

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; 
+0

謝謝!這也幫助了我 – 2013-09-12 11:46:39

+0

謝謝你..我也在尋找這個.. – Divya 2014-11-19 07:13:42

+1

爲什麼不直接在CurrentCulture中分配NumberDecimalSeperator? – Brent 2014-12-12 15:54:39

7

使用Decimal.ToString(..)System.Globalization.CultureInfo.InvariantCulture類似的參數應用。

,或者如果你想globaly做到這一點,使用

CurrentCulture設置爲始終Invariant之一,通過使用Applicaton.CurrentCulture財產。

+0

設置Application.CurrentCulture沒有爲我工作。 – Ted 2015-08-25 08:36:22

17

您可以使用value.ToString(CultureInfo.InvariantCulture)將您的數值轉換爲字符串。或者你可以在當前的文化在全球範圍更改爲使用點作爲小數點分隔文化:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US"); 
+0

'value.ToString(CultureInfo.InvariantCulture)'目前沒有工作:https://msdn.microsoft.com/en-us/library/29dxe1x2(v=vs.100).aspx – Jonas 2016-03-31 15:28:35

+1

@Jonas,你指出的鏈接是關於'String.ToString(IFormatProvider)'。關於這個參數如何「保留」的部分不適用於其他類型,只有String – 2016-03-31 15:35:56

+1

在我的版本(.NET 4.5)中它是'CultureInfo.GetCultureInfo(「en-US」)''。完美的作品。 – itmuckel 2016-10-19 07:39:35

相關問題