.net 为什么百分比的标准数字格式包含空格? 背景故事
我有一些十进制值,在网页上显示为字符串,作为较大字符串的一部分。我开始使用一个标准的数字格式字符串来输出它。例如.net 为什么百分比的标准数字格式包含空格? 背景故事,.net,number-formatting,.net,Number Formatting,我有一些十进制值,在网页上显示为字符串,作为较大字符串的一部分。我开始使用一个标准的数字格式字符串来输出它。例如 myDecimal.ToString("P0") p后面的0告诉它我不需要小数点。这就可以实现了,因为我的输出最终看起来像: 根据2%的分阶段最低公司出资率按上述计算 空间问题 我真的想去掉数字和百分号之间的空格,因为在某些情况下,它最终会跨行分裂。而且,我更喜欢%与数字匹配 可能的解决办法 1.html/css解决方案 我可以在它周围放一个标签或。但是,这感觉很尴尬,而且无论如何
myDecimal.ToString("P0")
p
后面的0
告诉它我不需要小数点。这就可以实现了,因为我的输出最终看起来像:
根据2%的分阶段最低公司出资率按上述计算
空间问题
我真的想去掉数字和百分号之间的空格,因为在某些情况下,它最终会跨行分裂。而且,我更喜欢%与数字匹配
可能的解决办法
1.html/css解决方案
我可以在它周围放一个
标签或
。但是,这感觉很尴尬,而且无论如何,我更喜欢%与数字直接对应,因为我认为它看起来更好。这是我们将如何在这片森林的颈部的报告中写它,所以这是我希望它在网页上的方式
2.自定义格式字符串
我将使用一个自定义的数字格式字符串,例如
myDecimal.ToString("0%")
问题
在数字和百分号之间用空格显示百分比是否更常见?这会让我感到惊讶,但也有可能
有没有办法告诉标准数字格式字符串我不需要空格
与标准数字格式字符串相比,使用自定义数字格式字符串是否有任何缺点
好的-我承认,这不仅仅是一个问题-如果你全部回答的话,那就要额外加分了。看看,或者看起来数字后面没有空格的百分号很常见:)
看看
它可能取决于区域性,默认(不变)为n%要更改默认的PercentPositivePattern值,必须创建一个新的CultureInfo对象并使用它,而不是默认值,它可能是“en us”。(或者,您可以在Web.config中指定“en za”作为区域性,但出于明显的原因,我不建议这样做。) 网站上有一篇很好的帖子,解释如何做到这一切。请参阅第三张海报(m0brien)编写的代码。我将他的精确代码复制到母版页的page_Load方法中,这样我就不必再考虑它了 当然,您始终可以只执行String.Format().Replace(“,String.Empty”),但您必须在整个站点中执行此操作。另外,老实说,当你可以卷起袖子,玩弄你的全球化价值观时,乐趣何在?这对我很有用:
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;
Windows 8中似乎发生了一些变化。当Windows区域设置配置为英语(澳大利亚)时,ToString(“P2”)给出“0.00%”,但在具有相同区域设置的Windows 7框中,它返回“0.00%”。指定不变区域性会导致在Win7和Win8上包含一个空间。谢谢,David!这让我快发疯了!在我的本地机器和构建服务器之间,我得到了不同的单元测试结果(“52.00%”与“52.00%”),现在它是有意义的。是的,这取决于文化,英语有一定的空间,尽管对此有无休止的讨论。