.net - 为什么百分比的标准数字格式包含空格?

标签 .net number-formatting

背景故事

我有一些十进制值,我将它们作为较大字符串的一部分在网页上显示为字符串。我开始使用标准数字格式字符串来输出它。例如

myDecimal.ToString("P0")

0 P之后告诉它我不想要小数位。就目前而言,这是有效的,因为我的输出最终看起来像这样:

Calculated as above based on the phased minimum Company contribution rate of 2 %

空间问题

我真的想去掉数字和百分号之间的空格,因为在某些情况下它最终会跨行分割。而且,我更喜欢用百分比来表示数字。

可能的解决方法

1.html/css解决方案

我可以输入 <nobr>标签或 <span style="white-space: nowrap;">周围。但是,这感觉很尴尬,而且无论如何,我更喜欢将百分比与数字相对应,因为我认为这样看起来更好。这就是我们在这个地区的报告中编写的方式,所以这就是我希望它在网页上的方式。

2.自定义格式字符串

我最终将使用自定义数字格式字符串,例如

myDecimal.ToString("0%")

问题

显示百分比时数字和百分号之间有空格是否更常见?这会让我感到惊讶,但也有可能。

有没有办法告诉标准数字格式字符串我不需要空格?

标准数字格式字符串相比,使用自定义数字格式字符串有什么缺点吗?

好吧 - 我承认,这不仅仅是一个问题 - 如果您全部回答,将获得额外加分。

最佳答案

这对我有用:

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;

关于.net - 为什么百分比的标准数字格式包含空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516549/

相关文章:

c# - 如何从 DataTable 对象中知道行索引

c# - 如何在 .NET 程序集中嵌入文本文件?

java - 使用 JTable 单元格编辑器

c# - I扩展 : extensible object pattern : How does it work?

.net - Request.CreateResponse<List<string>>(HttpStatusCode.OK, messages) 的替代方案

.net - 一个窗口中有多个Web浏览器 session /进程

javascript - 在javascript中将数字转换为带两位小数的逗号分隔格式

C# 浮点格式化怪癖

dart - 错误格式加倍