2017-03-07 31 views
0

我需要保持文化時轉換雙字符串,也舍入只有一個小數位。雙倍字符串與文化和只有一個小數位

轉換雙到字符串培養:

((12275454.8).ToString("N", new CultureInfo("sl-SI"))); 

給出輸出:

12.275.454,80

轉換雙串僅具有一個小數:

string.Format("{0:F1}",12275454.8) 

給出輸出:

12275454.8

第二輸出是沒有文化,第一輸出未四捨五入至小數點後一位。如何結合這兩種方法?

+0

舍入到小數點後一位,但沒有養殖。你知道這些信件在哪裏解釋? – FrenkyB

回答

1

只需使用的格式字符串您的第一個示例中的第二個示例,即:

((12275454.8).ToString("N1", new CultureInfo("sl-SI"))); 

編輯:根據請求將格式從F1更改爲N1。兩者的區別在於N另外使用了數千個分隔符,而F則不然。詳情請參閱https://msdn.microsoft.com/en-US/library/dwhawy9k(v=vs.110).aspx

+0

將F1更改爲N1,我將接受此答案。 – FrenkyB

1

您可以設置"sl-SI"文化爲默認之一:

using System.Threading; 

... 

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI"); 

string test = string.Format("{0:F1}",12275454.8); 

添加try..finally如果你想"sl-SI"培養的唯一的代碼塊:

var savedCulture = Thread.CurrentThread.CurrentCulture; 

try { 
    Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI"); 

    // Let's work with "sl-SI" for a while 
    string test = string.Format("{0:F1}",12275454.8); 
    ... 
} 
finally { 
    Thread.CurrentThread.CurrentCulture = savedCulture; 
}