using System.Globalization;
using NF = NumberFormatInfo;
...
decimal size = 123.456789;
string unit = "MB";
int fracDigs = 3;
// Some may consider this example a bit verbose, but you have the text,
// value, and format spec in close proximity of each other. Also, I believe
// that this inline, natural reading order representation allows for easier
// readability/scanning. There is no need to correlate formats, indexes, and
// params to figure out which values go where in the format string.
string s = $"size:{size.ToString("N",new NF{NumberDecimalDigits=fracDigs})} {unit}";
9条答案
按热度按时间t1rydlwq1#
要格式化的字符串不必是常量。
xhv8bpkk2#
使用
NumberFormatInfo
:euoag5mw3#
另一种选择是使用像这样的插值字符串:
还是一团糟,但更方便IMHO。请注意,字符串插值将双大括号(如
{{
)替换为单大括号。wwwo4jvm4#
可能是格式化单个值的最有效方法:
i34xakig5#
我使用了一种类似于Wolfgang的答案的 * 插值字符串 * 方法,但更紧凑和可读(恕我直言):
b4wnujal6#
我使用了两个插值字符串(Michael的答案的变体):
6vl6ewon7#
另一种带有短interpolated string变体的定点格式:
sq1bmfud8#
使用自定义数字格式字符串Link
esyap4oy9#
使用
输出将
654.32