[英]Double to string with culture and only one decimal place
將雙精度型轉換為字符串並四舍五入到小數點后一位時,我需要保持文化。
用文化將雙精度轉換為字符串:
((12275454.8).ToString("N", new CultureInfo("sl-SI")));
給出輸出:
12.275.454,80
將double轉換為只有一個小數的字符串:
string.Format("{0:F1}",12275454.8)
給出輸出:
12275454.8
第二個輸出沒有區域性,第一個輸出沒有四舍五入到小數點后一位。 如何結合兩種方法?
僅在第一個示例中使用第二個示例的格式字符串,即:
((12275454.8).ToString("N1", new CultureInfo("sl-SI")));
編輯:根據要求將格式從F1更改為N1。 兩者之間的區別在於N額外使用了數千個分隔符,而F則沒有。 有關詳細信息,請參見https://msdn.microsoft.com/zh-CN/library/dwhawy9k(v=vs.110).aspx
您可以將"sl-SI"
區域性設置為默認區域性:
using System.Threading;
...
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI");
string test = string.Format("{0:F1}",12275454.8);
如果只希望"sl-SI"
區域性代碼塊,請添加try..finally
:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.