C++代码:
double d = 12.0025;
CString str;
str.Format("%0.3f", d);ASSERT(str == "12.003");C# 如何实现类似功能?

解决方案 »

  1.   

    也就是C#中如何将dubble型转化成string,并能指定小数位数
      

  2.   

    Error 1 Static member 'string.Format(string, object)' cannot be accessed with an instance reference; qualify it with a type name instead E:\VCShape\ZmCalc\ZmCalc\MitnkCalc.cs 43 13 ZmCalc==============
    what's the problem?
      

  3.   

    double d = 12.0025;
    Text = string.Format("{0:#.000}", d);
      

  4.   

    double d=12.0025;
    string str = string.Format("{0:0.000}", d);
    if (str != "12.003")
    {
    throw new Exception();
    }
      

  5.   

    to zswang
    如果我想要40个小数位
    是不是得写成
    {0:#.0000000000000000000000000000000000000000}?汗
      

  6.   

    1.可读性比连加好看
      如:string str = "select * from "+ strTable +" where name="+strValue;
      而用Format 
      string.Format("select * from {0} where name='{1}'",strTable ,strValue);
      在检查SQL 错误时,容易差错特别是出现"'',%"这样的符号
    2.格式化的时候不需要指定是什么数据类型
      int nID = 1;
      string str = "select * from "+ strTable +" where ID ="+nID.ToString();//nID需要转化成string
     string.Format("select * from {0} where ID={1}",strTable ,nID);//nID在这里不需要转换3.比C++格式化方式更灵活
    当字符串出现相同的字符时,需要都列出来.如
     C++ str.Format("  %0.3f ABCDEF %d %0.3f", d,A,d);//参数根据 %的顺序而定
     C#  string.Format("  {0} ABCDEF {1} {0}", d,A);//在{}需要指定参数的顺序
      

  7.   

    to zswang
    如果我想要40个小数位
    是不是得写成
    {0:#.0000000000000000000000000000000000000000}?汗可以这样写:
    double D = Math.Round(d, 3, MidpointRounding.AwayFromZero);
    D.ToString();