C# 字符串自定义格式添加尾随零

C# string custom format to add trailing zeroes

我正在尝试将小数转换为包含 8 个字符的字符串。如果小数点前少于 3 位数字并且总是有四位数字,则它应该有前导白色 space。以下是我尝试过的方法和得到的结果。

decimal value=1; // What I want "  1.0000"
string str = value.tostring("###.0000"); // str ends up being "1"
str = string.Format("{0:###.0000}",1); // str ends up being "1.0000"
str = string.Format("{0,8}:###.0000",value); // str ends up being "       1"

我做错了什么?

第三个格式说明符背后的想法是正确的,但语法不正确。
这有效:

> string.Format("{0,8:###.0000}", 1M)
"  1.0000"
>

使用字符串插值的替代版本:

> decimal value = 1M;
> $"{value,8:###.0000}"
"  1.0000"
>

这应该有效:

 decimal value = 10;
 var  str = string.Format("{0,8:###.0000}", value);