【发布时间】:2015-08-24 14:57:51
【问题描述】:
我的要求如下:
我有一个双号。它可以是积极的,也可以是消极的。我想用 String.Format() 来格式化。
输出数(正(无符号)/负(包括符号)/零)应为固定宽度:11 所有数字都应该有 2 位小数。
例子:
1.2 00000001.20
.2 00000000.20
-.2 -0000000.20
12 00000012.00
0 00000000.00
-0 00000000.00
12.555 00000012.55
基本上,我想要的是固定宽度(11 位)。 2 小数点。没有积极的迹象。负号包含在固定宽度中。
我尝试过的:
{0:00000000.00;0:0000000.00;0:00000000.00}
请告诉我这样做的正确方法是什么。
【问题讨论】:
-
应该只是
{0:00000000.00;-0000000.00} -
谢谢!!!我忘了我可以简单地使用 - 来格式化负片。但是如果我不格式化负号,它不应该按原样输出吗?我的意思是 0.0000000.00 应该给出宽度为 11 的负数,包括符号。
-
不,“宽度”包括你的 - 符号,所以如果它是一个正数,它的 10 位数字 + 1 个小数,如果它的负数,它的 9 个数字、1 个小数和 1 个负号。在您的示例中,负号占据了一个数字位置,这意味着您需要不同的格式字符串。
-
@Madeyedexter 不,如果您指定“负”格式,则必须在输出中包含负号。这使您可以通过仅以输出格式反转符号来做“聪明”的思考:
{-0.0000,0.0000}。 -
@DStanley 所以如果我不把 - 放在否定部分的格式中, - 将被剥离并用零替换?
标签: c# formatting format