[英]How to replace dot separator with comma(for decimals) and comma separator with dot(for group) in c#?
如果我有字符串“1,234,567.89”並且我想得到“1.234.567,89”,那么在 c# 中最簡單的方法是什么?
您可以為此使用CultureInfo.NumberFormat
。
var str = "1,234,567.89";
var ci = CultureInfo.InvariantCulture.Clone() as CultureInfo;
ci.NumberFormat.NumberDecimalSeparator = ",";
ci.NumberFormat.NumberGroupSeparator = ".";
ci.NumberFormat.NumberGroupSizes = new[]{3};
var result = decimal.Parse(str).ToString("N",ci);
使用虛擬字符&
最簡單方法
var newValue = dd.Replace('.', '&')
.Replace(',', '.')
.Replace('&', ',');
您可以使用字符串替換功能
class Program
{
static void Main(string[] args)
{
string myString = "1,234,567.89";
string replaced = myString.Replace(".", "+").Replace(",",".").Replace("+",",");
string replacedBack = myString; //viceversa ?? -> re-use memory :P
Console.WriteLine(replaced);
Console.Read();
}
}
如果你能解釋你想在哪里使用它,這可能是個好主意。 如果是關於不同地區的數字表示(例如,我們在英國使用 . 作為十進制但丹麥使用 , 出於同樣的目的),那么您可以使用CultureInfo
進行轉換。 如果我們以你為例
string source = "1,234,567.89";
// convert it to a number format, let us say double
double f = double.Parse(source);
string output = f.ToString("n2", CultureInfo.GetCultureInfo("da-DK")); // For Denmark Locale
// n2 is for 2 decimal places
output
的值現在是1.234.567,89
。 這樣您就可以保留不同的數字表示,並且仍然可以在計算中使用它們。
最簡單的方法是將 Globalization 部分實現到 web.config 文件中,如下所示:
<system.web>
<globalization uiCulture="es-MX" culture="es-MX" />
...
</system.web>
對於這種情況,它使用西班牙語 languaje 和 MX 作為國家文化,您可以將其更改為“es-ES”以表示西班牙語 - 西班牙
如果你需要使用另一種文化,你可以谷歌它,一個資源是: https : //lonewolfonline.net/list-net-culture-country-codes/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.