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

 更新时间:2023年02月26日 12:59:16   作者:kingkee  
这篇文章主要介绍了C#中关于double.ToString()的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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 (strResult.IndexOf('.') >= 0) resultLength++;
            if (Math.Abs(a) < 1) resultLength++; //绝对值小于1,有一个整数0不算有效位
            if (strResult.Length < resultLength)
            {
                if (strResult.IndexOf('.') < 0)
                {
                    strResult += '.';
                    resultLength++;
        }
                strResult = strResult.PadRight(resultLength, '0');
            }
            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

总结

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

相关文章

  • 如何用.NETCore操作RabbitMQ

    如何用.NETCore操作RabbitMQ

    这篇文章主要介绍了如何用.NETCore操作RabbitMQ,对中间件感兴趣的同学,可以参考下
    2021-05-05
  • C# 下载文件 删除文件 写入文本的实例

    C# 下载文件 删除文件 写入文本的实例

    下面小编就为大家分享一篇C# 下载文件 删除文件 写入文本的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C#计算汽车行驶方向的方法分析

    C#计算汽车行驶方向的方法分析

    这篇文章主要介绍了C#计算汽车行驶方向的方法,结合实例形式分析了C#数值计算的原理与相关技巧,需要的朋友可以参考下
    2016-09-09
  • DevExpress之TreeList用法实例总结

    DevExpress之TreeList用法实例总结

    这篇文章主要介绍了DevExpress之TreeList用法,对于C#初学者有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • C#使用TreeView控件实现的二叉树泛型节点类及其方法

    C#使用TreeView控件实现的二叉树泛型节点类及其方法

    TreeView 控件在 C# 中主要用于显示分层结构的数据,这通常是一个文件系统的表示,但也可以是任何具有父子关系的数据集合,本文给大家介绍了C#使用TreeView控件实现的二叉树泛型节点类及其方法,需要的朋友可以参考下
    2024-03-03
  • C#存储相同键多个值的Dictionary实例详解

    C#存储相同键多个值的Dictionary实例详解

    在本篇文章里小编给大家整理的是关于C#存储相同键多个值的Dictionary实例内容,需要的朋友们可以学习下。
    2020-03-03
  • C#实现常见时间格式

    C#实现常见时间格式

    这篇文章介绍了C#实现常见时间格式的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • c# 用ELMAH日志组件处理异常

    c# 用ELMAH日志组件处理异常

    这篇文章主要介绍了c# 用ELMAH日志组件处理异常,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • 详解LINQ入门(上篇)

    详解LINQ入门(上篇)

    这篇文章主要介绍了详解LINQ入门(上篇),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • c#装箱和拆箱知识整理

    c#装箱和拆箱知识整理

    这篇文章主要介绍了c#装箱和拆箱知识,装箱和拆箱是一个抽象的概念,需要的朋友可以参考下
    2014-03-03

最新评论