C# 格式浮点数为带有分隔符和填充 0 的字符串

C# format float to string with separators and padding 0

我需要将整数和浮点数格式化为字符串。

如果是浮点数,我需要,作为小数点分隔符。 . 必须是千位分隔符。

此外,我需要用 0 完成剩余的小数。一些例子:

float:
45,3: 000.045,30
125: 000.125,00
83560.195: 083.560,19

int:
45: 000.045
5789: 005.789

我设法用 "{0:#,0}" 格式化了数千个,但我仍然找不到如何格式化小数以及如何正确填充保留分隔符。

无论配置的文化如何,都必须这样做:/

可以设置文化为欧洲文化,格式为:

string.Format(new CultureInfo("de-DE"), "{0:000,000.00}", num).Dump();

这适用于给定的示例:

NumberFormatInfo numberFormat = new NumberFormatInfo
{
    NumberDecimalSeparator=",",
    NumberGroupSeparator="."
};

string formatFloat(float f)
{
    return f.ToString("0####,0.00",numberFormat);
}

string formatInt(int i)
{
    return i.ToString("0####,0",numberFormat);
}