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)
谢谢
使用格式字符串: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