如何在单行中将逗号转换为句点和句点到逗号

nav*_*een 6 c# c#-4.0

我有一个这样的数字12,345,678.09,我想转换为12.345.678,09 我正在考虑拆分字符串.并将字符串中的逗号更改为句点,然后用逗号连接它们.

string value = "12,345,678.09";
string[] parts = value.Split(new char[]{'.'});
string wholeNumber = parts[0].Replace(",", ".");
string result = String.Format("{0},{1}", wholeNumber, parts[1]);
Run Code Online (Sandbox Code Playgroud)

我觉得这种方法非常笨拙.有更好的方法吗?

das*_*ght 9

如果有一个符号没有出现在你的字符串中的任何地方,比如说'$',你可以这样做:

parts[0].Replace(",", "$").Replace(".", ",").Replace("$", ".");
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,这在CPU周期方面并不是最理想的,但它确实可以保持单线.


Jam*_*iec 8

执行此操作的正确方法(正确而非字符串混合)是使用CultureInfo您要格式化的文化.看起来你是在追随意大利文化it-IT:

var num = 123456789.01;
var ci = new CultureInfo("it-IT");
Console.WriteLine(num.ToString("#,##0.00",ci)); //output 123.456.789,01
Run Code Online (Sandbox Code Playgroud)

实例:http://rextester.com/ARWF39685

请注意,在格式字符串中,您使用,的是"数字组分隔符"并.指示"小数分隔符",但文化信息将替换为文化的正确分隔符 - 就意大利文化而言,它们完全相反(.是组分隔符)并且,是小数分隔符).