簡體   English   中英

c# - 如何在c#中用逗號(小數)替換點分隔符,用點(組)替換逗號分隔符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM