固定小数位很容易
String.Format("{0:F1}", 654.321);
给出
654.3
如何在C中作为参数输入小数位数? 所以
String.Format("{0:F?}", 654.321, 2);
给出
654.32
我找不到应该替换的东西?
答案 0 :(得分:16)
要格式化的字符串不必是常量。
int numberOfDecimalPlaces = 2;
string formatString = String.Concat("{0:F", numberOfDecimalPlaces, "}");
String.Format(formatString, 654.321);
答案 1 :(得分:5)
使用NumberFormatInfo
:
Console.WriteLine(string.Format(new NumberFormatInfo() { NumberDecimalDigits = 2 }, "{0:F}", new decimal(1234.567)));
Console.WriteLine(string.Format(new NumberFormatInfo() { NumberDecimalDigits = 7 }, "{0:F}", new decimal(1234.5)));
答案 2 :(得分:3)
另一个选择是使用插值字符串,如下所示:
int prec = 2;
string.Format($"{{0:F{prec}}}", 654.321);
还是一团糟,但是恕我直言更加方便。请注意,字符串replaces double braces像{{
一样,只有一个括号。
答案 3 :(得分:0)
可能是格式化单个值的最有效方法:
int decimalPlaces= 2;
double value = Math.PI;
string formatString = String.Format("F{0:D}", decimalPlaces);
value.ToString(formatString);
答案 4 :(得分:0)
我使用类似于沃尔夫冈答案的内插字符串方法,但是更加简洁易读(IMHO):
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked"
}
}
}
答案 5 :(得分:0)
我使用了两个内插字符串(Michael's answer的变体):
{{ site.data.stocks | jsonify }}
答案 6 :(得分:-2)
使用自定义数字格式字符串Link
var value = 654.321;
var s = value.ToString("0.##");
答案 7 :(得分:-3)
使用
string.Format("{0:F2}", 654.321);
输出
654.32