我在C#中的對象上有一個小數。我希望能夠在值爲-1.61769時將它顯示爲xxxx.xxxx,基本上我想將最後兩位數字向上舍入並確保它在小數位後只有4個小數位。 ?林不知道這是否是一個數學運算(即Math.Round),或者是一個驗證操作(即的String.format)或兩者..如何確保小數始終顯示爲xxxx.xxxx正面和負面?
希望有人能幫助...
我在C#中的對象上有一個小數。我希望能夠在值爲-1.61769時將它顯示爲xxxx.xxxx,基本上我想將最後兩位數字向上舍入並確保它在小數位後只有4個小數位。 ?林不知道這是否是一個數學運算(即Math.Round),或者是一個驗證操作(即的String.format)或兩者..如何確保小數始終顯示爲xxxx.xxxx正面和負面?
希望有人能幫助...
試試這個:
string result = d.ToString("0.0000");
您可能還需要指定一個文化:
CultureInfo cultureInfo = CultureInfo.InvariantCulture;
string result = d.ToString("0.0000", cultureInfo);
結果:
-1.6177
看到它聯機工作:ideone
http://www.csharp-examples.net/string-format-double/在格式化的其他等待中也給出了一些很好的例子。 – NominSim 2012-03-29 11:07:54
這取決於你是否要最多四個小數位,或exacty數的值小數點後四位。
如果四捨五入的價值,你得到最多四個小數位:
value = Math.Round(value, 4);
的值,例如1.61799
將被四捨五入到1.6180
而顯示爲1.618
。
如果格式化的值,你得到完全四個小數位:
string formatted = value.ToString("0.0000");
你嘗試Math.Abs()
? 根據此MSDN-Page這是不可能的。 因爲它會顯示一個不同的值。
Math.Abs(-1.61769).ToString("####.####");
發表評論! – 2012-03-29 11:11:34
這不會做作者想要的。他想把價值四捨五入,而不是它的絕對價值,它會得到負面的正面信號。 – 2012-03-29 14:45:34
@Rhhound該問題要求「始終顯示爲xxxx.xxxx正面和負面」 - 如果x代表一個數字,則xxxx.xxxx中無法顯示符號。我認爲你是對的,這不是作者想要提出的問題,但這並不意味着要回答一個僅僅假設問題是正確的答案。 – hvd 2012-03-30 13:47:16
應該如何-1.61769看你的 「XXXX.XXXX」 格式? -0001.6177? – 2012-03-29 11:03:37