开发者

C#中关于double.ToString()的用法

目录
  • C# double.ToString()的用法
    • 下面列出几个常用的方法
  • C# Double 按有效数字 ToString
    • 将double转换为n有效数字的字符
    • 所以就php写了一个函数
  • 总结

    C# double.ToString()的用法

    C# 中 double 类型的数据,有时需要格式化显示为字符串(保留N位有效数字或者是保留N位小数),可以使用 double.ToString("参数") 方法。

    下面列出几个常用的方法

    (F)Fixed point:string str1=temp.ToString("f1");       //保留一位小数 四舍五入 结果:3.1
    
    (F)Fixed point:string str2=temp.ToString("f2");       //保留两位小数,四舍五入 下面一次类推 结果:3.14
    
    (N)Number:string str2=temp.ToString("N");          //保留 结果:3.14
    
    (G)General (default):string str2=temp.ToString("G");  //保留 结果:3.1编程客栈415926
    
    (P)Percent:string str2=temp.ToString("P");          //保留 结果:314.16%
    
    (E)Scientific:string str2=temp.ToString("E");         //保留 结果E:3.141593E+000
    
    (C)Currency:string str2=temp.ToString("C");        //保留 结果:¥3.14

    C# Double 按有效数字 ToString

    将double转换为n有效数字的字符

    我找了各种帖子包括在微软文档搜索 ‘significant digits’;最接近的是ToString(“Gx”)

    但是返回是不大于这个x有效位的字符串, 举例

    double a=1.2;
    string s=a.ToString("G3");

    得到1.2而不是1.20

    所以就写了一个函数

        string DoubleToStringSignificantDigits(double a, int SignificantDigits)
        {
          string formaterG = 'G' + SignificantDigits.ToSt开发者_开发入门ring("N0");
          string strResult = a.ToString(formaterG);
          int resultLength = SignificantDigits;
          if (strResult.IndexOf('-') >= 0) resultLength++;
          if (strRewww.devze.comsult.IndexOf('.') >= 0) resultLength++;
          if (Math.Abs(a) < 1) resultLength++; //绝对值小于1,有一个整数0不算有效位
          if (strResult.Length <http://www.devze.com; resultLength)
          {
            if (strResult.IndexOf('.') < 0)
            {
              strResult += '.';
              resultLength++;
      }
            strResult = strResult.PadRight(resultLength, '0');
          js}
          return (strResult);
        }

    结果

    double[] x = new double[] { 100, 99, 12.12, 1.1234, 1.2, 0.2, 0.12345 , -0.2, -1.2, -123};

    转换

    DoubleToStringSignificantDigits(x[i], 3)

    得到

    100

    99.0

    12.1

    1.12

    0.200

    0.123

    -0.200

    -1.20

    -123

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜