问题是:Convert.ToString()如何设置格式,例子如下:
float n = 2.1345567;
string str = Convert.ToString( n , ? );
Console.WriteLine(str);
我要的输出结果为:2.13也就是转的过程中保留两位小数。MSDN上关于 Convert.ToString (Single, IFormatProvider) 的解释和示例太笼统和复杂了,没看明白。如何设置那个:IFormatProvider 参数

解决方案 »

  1.   

    float n = 2.1345567;
    String.Format("{0,F}",n)
      

  2.   

     float n = 2.1345567f;
                    string result = n.ToString("F2");
      

  3.   


    double dbdata = 0.335333;
    string str1 = String.Format("{0:F}", dbdata);//默认为保留两位decimal.Round(decimal.Parse("0.3333333"), 2);这两种方法都可以
      

  4.   

    额,我想知道的是如何在ToString()中直接设置,我看了貌似有这个功能:Convert.ToString 方法 (Single, IFormatProvider)将指定的单精度浮点数字的值转换为它的等效 String 表示形式。 
    public static string ToString (
    float value,
    IFormatProvider provider
    )

    value:单精度浮点数字。 provider:IFormatProvider 接口实现,提供区域性特定的格式设置信息。
    这个provider参数怎么写啊,是否能实现我想要的功能?新手求解啊~~~~
      

  5.   

    还有,为什么Convert.ToString(null)不会抛出异常而是返回空字符串,而.ToString会抛出异常。百度了好多,但是都只说了两者的区别,没有说为什么会这样。个人觉得弄清楚会帮助更加深入的了解.NET和C#。
      

  6.   

    你这种情况好像只能用ToString.
                float myFloat = 2.3444532f;
                // Displays the same value with four decimal digits.
                nfi.NumberDecimalDigits = 4;
                Console.WriteLine(myFloat.ToString("F", nfi));
                Console.WriteLine(Convert.ToString(myFloat, nfi));
    结果:
    2.3445
    2.344453
      

  7.   

    忘了帖nfi 的声明了:NumberFormatInfo nfi = new NumberFormatInfo();
      

  8.   

    额,自己再上MSDN看了下,貌似只能用.ToString里才能设置输出格式,感谢各位。