2012-03-17 53 views
14

我在使用百分比StringFormat方法時遇到技術問題。StringFormat中的百分比

String.Format("{0:P}", 0.8526)結果是85.26%

,但我認爲它應該是0.8526%

它是正確的嗎?如果是,我怎樣才能得到0.8526%

+4

的String.Format( 「{0}%」,0.8526) – Steve 2012-03-17 15:33:43

回答

17

Console.WriteLine(string.Format("{0}%", 0.8526));

12

是數學上0.8526等於85.26%。如果您需要獲得0.8526%,那麼試試這個

String.Format("{0:P}", 0.8526/100) 
+0

我想在網格使用DataFormatString。我怎樣才能在那裏實現分工? – Mironline 2012-03-17 15:35:11

+0

在你的情況下,你甚至不需要劃分。如果你需要'0.8526'作爲'0.8526%',那麼你爲什麼不給'%'添加數字? '「0.8526%」= 0.8526.ToString()+「%」'。這有幫助嗎? – Kaf 2012-03-17 15:40:11

+4

-1爲什麼要分割和乘以相同的數量?只輸出{0}% – 2012-03-17 15:43:06

2

String.Format當您使用%或將乘以100:P String.Format 如果你想獲得你在找什麼你應該先100分。

+3

-1爲什麼要分割和乘以相同的數量?只需輸出{0}% – 2012-03-18 13:22:29

+6

@Chris,因爲String.Format將考慮當前文化的格式化百分比值的規則,而{0}%是硬編碼到US-EN標準。 – 2015-02-12 22:17:17

+0

這就像是一種特定文化的硬編碼,但不是真的。 double將使用G格式說明符隱式格式化。完全忽略百分比符號,G格式說明符的格式與P的格式不同,主要是默認顯示多少個小數位。你應該在https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx上閱讀關於G和P. – user1676558 2017-04-29 20:14:00

2

一個百分比被認爲是0-100%,而相關的浮點指針數字是0.0-1.0,因爲它是兩個數字之間的比率。