String.Format - 从C++转移到C#

Dar*_*dar 2 c# string string-formatting

我们正在将代码从C++升级到C#,而且很多地方我们正在编写字符串.例如,我们有类似的东西:

OurString.Format("amount = %0.2Lf", (long double)amount);
Run Code Online (Sandbox Code Playgroud)

如何将%0.2Lf转换为C#格式?我尝试了下面的代码,但它不一样

string formatString = String.Format("amount = {0}", (long double)amount));
Run Code Online (Sandbox Code Playgroud)

谢谢

Tie*_* T. 5

使用格式字符串:http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

您可能想要N2或者F2,取决于是否包含千位分隔符.所以,

string formatString = String.Format("amount = {0:F2}", amount);
Run Code Online (Sandbox Code Playgroud)

编辑:

作为一个简单的FYI,如果您在一系列不同的步骤中构造一个字符串,您可能希望使用StringBuilder该类,该类具有AppendFormat()接受相同格式化选项的方法string.Format():

var builder = new StringBuilder();

// ... Your code to build the first part of the string

builder.AppendFormat("amount = {0:F2}", amount);

// ... whatever else you need to add

builder.ToString(); // outputs your final/completed string.
Run Code Online (Sandbox Code Playgroud)

是否使用StringBuilder取决于应用程序对内存管理和/或性能的重要程度; C#中的字符串是不可变的,所以当你连接它们时,你实际上是在创建一个全新的字符串.你可以在这里阅读更多内容:http://msdn.microsoft.com/en-us/library/system.string.aspx#Immutability