【问题标题】:c# string.format removing my quot marksc# string.format 删除我的引号
【发布时间】:2012-11-16 07:56:31
【问题描述】:

我不知道我是看不懂documentation还是需要再喝一杯咖啡。

我想将一个小数格式化为一些 html。以下代码的工作原理是格式化字符串,但它会去除添加的任何类型的引号或撇号。

private string FormatOutput1 = "{0:<span style='font-size: 14px;'>$0</span>.00}";
private string FormatOutput2 = "{0:<span style=\"font-size: 14px;\">$0</span>.00}";
private string FormatOutput3 = @"{0:<span style=""font-size: 14px;"">$0</span>.00}";
private string FormatOutput3 = "{0:<span style=\'font-size: 14px;\'>$0</span>.00}";
string.Format( FormatOutput, order.OrderTotal ) );

对我来说总是导致(假设小数点是 330)

<span style=font-size: 14px;>$330</span>.00

缺少引号会破坏所需的输出。有没有办法解决这个问题或我错过了什么。

【问题讨论】:

  • 为什么要在格式字符串中包含所有标记?这对我来说似乎是一种糟糕的方法,可能会搞砸String.Format() 的格式字符串。
  • 您为什么不使用format = @"&lt;span style=\"...\"&gt;$&lt;/span&gt;{0:0.000}"; 并将标记放在占位符之前?

标签: c# asp.net string-formatting


【解决方案1】:

如果您真的只是想格式化小数,请将 html 移到花括号之前:

string FormatOutput = "<span style='font-size: 14px;'>$</span>{0:0.00}";

为了适应更新,您可以使用\ 对其进行转义,但由于它是一个字符串,您需要使用两个\\ 并同时转义;

string FormatOutput = "{0:<span style=\\'font-size: 14px\\;\\'>0</span>.00}";

【讨论】:

  • 是的,我认为 Op 读错了手册。不过,您可能希望取消转义单引号。
  • 对不起,我的代码示例不正确。我已经更新了它和输出
猜你喜欢
  • 1970-01-01
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
相关资源
最近更新 更多