<
>

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

2023-02-26 14:36:30 来源:易采站长站 作者:

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

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

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.1415926

(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.ToString("N0");
      string strResult = a.ToString(formaterG);
      int resultLength = SignificantDigits;
      if (strResult.IndexOf('-') >= 0) resultLength++;
      if (strRewww.cppcns.comsult.IndexOf('.') >= 0) resultLength++;
      if (Math.Abs(a) < 1) resultLength++; //绝对值小于1,有一个整数0不算有效位
      if (strResult.Length <http://www.cppcns.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

总结

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

暂时禁止评论

微信扫一扫

易采站长站微信账号