Dot-Net

為什麼百分比的標準數字格式包含空格?

  • January 6, 2015

背後的故事

我有一些十進制值,作為較大字元串的一部分,我在網頁上顯示為字元串。我開始使用標準數字格式字元串來輸出它。例如

myDecimal.ToString("P0")

0之後告訴它P我不想要小數位。就目前而言,這很有效,因為我的輸出最終看起來像:

根據分階段最低公司貢獻率 2% 計算如上

空間問題

我真的想擺脫數字和百分號之間的空間,因為在某些情況下它最終會跨行分裂。而且,我更喜歡 % 來對接這個數字。

可能的解決方法

1.html/css解決方案

我可以在它周圍放一個<nobr>標籤或一個<span style="white-space: nowrap;">。但是,這感覺很尷尬,而且無論如何我更喜歡 % 來匹配這個數字,因為我認為它看起來更好。這就是我們在這片森林的脖子上的報告中寫它的方式,所以這就是我希望它在網頁上的方式。

2.自定義格式字元串

我將最終使用自定義數字格式字元串,例如

myDecimal.ToString("0%")

問題

在數字和百分號之間用空格顯示百分比是否更常見?這會讓我感到驚訝,但它可能是。

有沒有辦法告訴標準數字格式字元串我不想要空間?

使用自定義數字格式字元串而不是標準數字格式字元串有什麼缺點嗎?

好的 - 我承認,這不僅僅是一個問題 - 如果您全部回答,則額外加分。

查看http://www.nasdaq.com/>或<http://finance.yahoo.com/似乎數字後面沒有空格的百分號很常見:)

看看http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.percentpositivepattern.aspx

它可能取決於文化,預設(不變)beeing n %

這對我有用:

System.Globalization.CultureInfo  newCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCulture.NumberFormat.PercentPositivePattern = 1;  // Avoid putting a space between a number and its percentage
System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;

引用自:https://stackoverflow.com/questions/516549