2016-07-07 35 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