我再用c# 将一个浮点型的数字输出时,像达到C++ CString %16.5f那样的功能,即一共输出16位,5位小数,不足的地方用空格代替,我找了各种帮助文档,发现实现不了,请帮忙~~

解决方案 »

  1.   

    查一下MSDN,数值类型的ToString()方法有重载,可以实现特殊格式化。
      

  2.   

    System.Console.WriteLine("[{0,16:F5}]", 12345.678);
      

  3.   

    // 标准数字格式字符串用法说明及举例
    class NumberFormat
    {
      static void Main()
      {
        // {index[,alignment][:format]}
        // index     - 从零开始的整数,指示对象列表中要格式化的元素。
        // alignment - 可选整数,指示最小宽度,不足部分用空格填充。负数指示左对齐,正数指示右对齐。
        // format    - 格式字符串。标准数字格式字符串采取“Axx”形式,A为单个字母, 说明如下:
        //    c - 货币,     xx指示小数位数
        //    d - 十进制,   xx指示有效位数, 不足用零填充, 只能用于整数
        //    x - 十六进制, 用法同d
        //    e - 指数,     xx指示小数位数
        //    f - 固定点,   xx指示小数位数
        //    n - 数字,     输出千位分隔符, 其余同f
        //    g - 常规,     xx指示有效位数, 使用e或f中较短者
        //    p - 百分比,   xx指示小数位数
        // 例如以下语句的输出为: "|¥-5.00|-05| -05|-5.0 |-500%|12345.7|12,345.7|"
        System.Console.WriteLine("|{0:c}|{0:d2}|{0,4:d2}|{0,-5:f1}|{0:p0}|{1:f1}|{1:n1}|", -5, 12345.67);
      }
    }
      

  4.   


                            float f = 234.67f;
    string s = string.Format("{0,16:N5}", f);
    Console.WriteLine(s);