使用前导空格将十进制值格式化为string

在逗号/点之后,如何将十进制值格式化为一个数字的string,并且值小于100的前导空格?

例如, 12.3456的十进制值应该以单引导空格输出为" 12.3"10.011将是" 10.0"123.123"123.1"

我正在寻找一个解决scheme,与标准/自定义string格式,即

 decimal value = 12.345456; Console.Write("{0:magic}", value); // 'magic' would be a fancy pattern. 

这种模式{0,5:###.0}应该工作:

 string.Format("{0,5:###.0}", 12.3456) //Output " 12.3" string.Format("{0,5:###.0}", 10.011) //Output " 10.0" string.Format("{0,5:###.0}", 123.123) //Output "123.1" string.Format("{0,5:###.0}", 1.123) //Output " 1.1" string.Format("{0,5:###.0}", 1234.123)//Output "1234.1" 
 value.ToString("N1"); 

更改数字更多小数位。

编辑:错过了填充位

 value.ToString("N1").PadLeft(1); 

以上所有的解决scheme都会进行十进制舍入,以防有人在四舍五入的情况下寻找解决scheme

 decimal dValue = Math.Truncate(1.199999 * 100) / 100; dValue .ToString("0.00");//output 1.99