2014-08-28 55 views
0

我在C#中格式化double有問題。我想要實現這樣的格式: 2.0,但我得到一個異常。如何在C#中將double格式化爲這種格式?

string result = string.Format("{0.0}", 2.0d); 

我得到格式異常,輸入字符串的格式不正確。當我將代碼更改爲:

string result = string.Format("{0:0.0}", 2.0d); 

我得到逗號,而不是分隔符。有沒有任何其他功能從string.format獲得2.0的一些方法?

+1

「我得到的逗號,而不是下降,因爲分隔符」 - 我相信這是因爲你的文化設置。 – 2014-08-28 09:25:24

+1

可能的重複:http://stackoverflow.com/questions/4076789/converting-double-to-string-with-n-decimals-dot-as-decimal-separator-and-no-th – Jester 2014-08-28 09:26:50

+0

http:// msdn .microsoft.com/EN-US /庫/ dwhawy9k(v = vs.110)的.aspx – 2014-08-28 09:27:59

回答

1
string.Format(CultureInfo.InvariantCulture, "{0:0.0}", 2.0d); 
1

試試這個,而不是使用String.Format()

var param = 2.0d 
string result = param.ToString("N1"); 
2

你得到,因爲你的系統的語言環境的一個逗號。如果你想永遠得到.,指定文化不變性:

string result = string.Format(CultureInfo.InvariantCulture, "{0:N1}", 2.0d); 

看一看Standard Numeric Format Strings

1

試試這個,投入,美喜歡文化:

string result = string.Format(new System.Globalization.CultureInfo("en-GB"),"{0:0.0}", 2.0d); 
相關問題