组合C# String.Format格式选项

3
我可以帮您将数字格式化为百分数,并始终显示符号。
要将其格式化为百分数,可以使用以下代码:
string.Format("{0:P2}", 1.45);

对于可见的迹象,我会采取以下措施:

string.Format("{0:+#.##;-#.##;0}", 1.45);

有没有方法将这两个东西结合起来?

请使用字符串内插(interpolation)而不是string.Format。这样可以显著提高可读性。 - Aluan Haddad
@AluanHaddad 如果我在使用更新的.NET版本,我会这么做。 - user1255410
升级了!除此之外,您还可以将许多语言特性降级到旧的运行时。这里有一个有用的格式说明参考:https://msdn.microsoft.com/zh-cn/library/dwhawy9k(v=vs.110).aspx 附注:Google是我的朋友,也是你的朋友 :) - Aluan Haddad
我认为最简单的选项是类似这样的 (1.45 < 0 ? "-" : "+") + String.Format("{0:P2}", 1.45);,前提是你的 .NET 版本不受限制。 - Alfie Goodacre
如果可以的话,我会升级:))) 如果您没有帮助解决原始问题,请不要发帖。 - user1255410
显示剩余2条评论
1个回答

4

你可能只需要在自定义格式中添加%

string.Format("{0:+#.##%;-#.##%;0}", 1.45); // output +145%

不需要在 . 后面重复 # 两次。为什么不直接像这样使用 string.Format("{0:+#.#%;-#.#%;0}", 1.45); - Hossein Narimani Rad
@HosseinNarimaniRad,说实话,我只是复制粘贴了OP的输入。但你建议的不是相同的#.##.##结果是不同的,请尝试使用1.45678 - Sinatr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接