2016-07-07 39 views
-2

我有一個查詢。我需要一些改變(,)至(.)和(.)至(,)(即,1,234.45 - >1.234,45)。我試過string.Replace()的方法。它將所有(。)更改爲(,)或(,)爲(。)。如何更改NumberFormat?

請任何人建議我如何做到這一點。

+2

這是一個浮動或字符串? –

+0

@ThomasAyoub,我已經設置的數據類型爲十進制 – Prithiv

+0

這對我來說,看起來像一個[XY問題(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - 可能你更詳細地描述你正在嘗試做什麼? – Default

回答

2

只需在替換之間使用臨時字符(例如:'_')即可。

char tempChar = '_'; 
string originalStr = "1,234.45"; 
string finalStr = originalStr.Replace(',', tempChar).Replace('.', ',').Replace(tempChar , '.'); 
-1

你可以嘗試使用:

var str = Convert.ToDecimal("1.2345", new CultureInfo("en-US")); 

或類似

var str = decimal.Parse("1.2345", new NumberFormatInfo() { NumberDecimalSeparator = "," }); 
+0

調用'ToString'像「1000」與文化「EN-US」是不會用了一段來取代逗號'string'。這就是你的_如果它是一個字符串then_部分似乎暗示 – juharr

+0

@juharr: - 沒有看到OP使用小數點。 –

3

您可以使用ToStringNumberFormatInfo

decimal value = new decimal(1234.45); 
Console.Out.WriteLine(value.ToString("N", new NumberFormatInfo 
              { 
               NumberDecimalSeparator = ".", 
               NumberGroupSeparator = "," 
              })); 

它將輸出

1,234.45