首页 文章

将十进制值格式化为带前导空格的字符串

提问于
浏览
46

如何将十进制值格式化为逗号/点后面的单个数字和小于100的前导空格?

例如, 12.3456 的十进制值应输出为具有单个前导空格的 " 12.3" . 10.011" 10.0" . 123.123"123.1"

我正在寻找一种适用于标准/自定义字符串格式化的解决方案,即

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

4 回答

  • 1
    value.ToString("N1");
    

    更改小数位数的数字 .

    编辑:错过了填充位

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

    所有上述解决方案都将进行十进制舍入,以防有人在没有舍入的情况下搜索解

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

    另一个用字符串插值(C#6):

    double x = 123.456;
    $"{x,15:N4}"// left pad with spaces to 15 total, numeric with fixed 4 decimals
    

    表达式返回: " 123.4560"

  • 6

    这种模式 {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"
    

相关问题