内插字符串格式问题

我已经多次偶然发现插入字符串的一个问题。


考虑以下情况:


double number = 123.4567;

var str = $"{{{number:F2}}}"; //I want to get "{123.45}"

Console.WriteLine(str); // Will print "{F2}"

一开始有点令人惊讶,但一旦你意识到大括号是如何配对的,这就很有意义了。后面的两个大括号是内插字符串中单个花括号的转义序列。因此,内插表达式的左括号与字符串中的最后一个花括号配对。


     ___pair____

    |           |

$"{{{number:F2}}}";

现在您可以执行以下操作来打破转义序列:


var str = $"{{{number:F2} }}"; // This will be "{123.45 }"

请注意此方法添加到输出中的空格字符。(不理想)


我的问题:


假设我想使用单个内插字符串来准确获得输出“{123.45}”


如果不做如下骇人听闻的事情,这完全可能吗?


var s = $"{{{number:F2}{'}'}";


开心每一天1111
浏览 134回答 2
2回答

holdtom

假设不需要使用命名格式字符串,您可以使用:var s = $"{{{number:#.#0}}}";
打开App,查看更多内容
随时随地看视频慕课网APP