测试结果:

double->none 366ms
double->long 161ms
double->long2 188ms
double->format 564ms
double->Round 393ms

代码:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace testStringbuilder
{
class Program
{
static void Main(string[] args)
{
const int count = 1000000; RunTest("double->none",()=>
{
StringBuilder sb = new StringBuilder(1000*1024*32);
double a = 3.1415926;
for (int i = 0; i < count; i++)
{
sb.Append(a);
sb.Append(',');
}
}); RunTest("double->long", () =>
{
StringBuilder sb = new StringBuilder(1000 * 1024 * 32);
double a = 3.1415926;
for (int i = 0; i < count; i++)
{
sb.Append((long)a);
sb.Append(',');
}
}); RunTest("double->long2", () =>
{
StringBuilder sb = new StringBuilder(1000 * 1024 * 32);
double a = 3.1415926;
for (int i = 0; i < count; i++)
{
sb.Append((long)(a * 100));
sb.Append(',');
}
}); RunTest("double->format", () =>
{
StringBuilder sb = new StringBuilder(1000 * 1024 * 32);
double a = 3.1415926;
for (int i = 0; i < count; i++)
{
sb.AppendFormat("{0:f3}",a);
sb.Append(',');
}
}); RunTest("double->Round", () =>
{
StringBuilder sb = new StringBuilder(1000 * 1024 * 32);
double a = 3.1415926;
for (int i = 0; i < count; i++)
{
sb.Append(Math.Round(a, 3));
sb.Append(',');
}
});
} private static void RunTest(string key, Action action)
{
double milli = 0;
for (int i = 0; i < 3; i++)
{
Stopwatch watch = Stopwatch.StartNew(); try
{
action();
}
catch (Exception ex)
{
Console.WriteLine(ex);
} watch.Stop();
milli += watch.ElapsedMilliseconds;
} Console.WriteLine("{0}\t{1}ms", key, (long) (milli/3));
}
}
}

  

double在输出为字符串的几种方法效率测试的更多相关文章

  1. 【Python】输出中文字符串的两种方法

    print u"中文"   # -*- coding: utf-8 -*-   这句话放在最上面,记得是最上面,顶格写 这样,print后,字符串前就不用加u了

  2. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  3. python—字符串拼接三种方法

    python—字符串拼接三种方法   1.使用加号(+)号进行拼接 字符串拼接直接进行相加就可以,比较容易理解,但是一定要记得,变量直接相加,不是变量就要用引号引起来,不然会出错,另外数字是要转换为字 ...

  4. Python 3 格式化字符串的几种方法!

    Python 3 格式化字符串的几种方法! %s和%d,%s是用来给字符串占位置,%d是给数字占位置,简单解释下: a = 'this is %s %s' % ('an','apple') 程序输出的 ...

  5. java double类型保留两位小数4种方法【转】

    4种方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberF ...

  6. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  7. Java List转换为字符串的几种方法

    Java List转换为字符串的几种方法 import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import ...

  8. Golang拼接字符串的5种方法及其效率_Chrispink-CSDN博客_golang 字符串拼接效率 https://blog.csdn.net/m0_37422289/article/details/103362740

    Different ways to concatenate two strings in Golang - GeeksforGeeks https://www.geeksforgeeks.org/di ...

  9. Java - 格式化输出JSON字符串的两种方式

    目录 1 使用阿里的fastjson 1.1 项目的pom.xml依赖 1.2 Java示例代码 2 使用谷歌的gson 2.1 项目的pom.xml依赖 2.2 Java示例代码 1 使用阿里的fa ...

随机推荐

  1. c语言编程上次输入影响下次记过怎么解决要交作业啦求大神相助

    秦时鸥总算知道为什么这里这么多的房屋了,当一座吧台和一张张台球桌清理出来的时候他才发现,原来这渔场还有酒吧和桌球厅.

  2. [ 10.08 ]CF每日一题系列—— 602B

    Description: 一个数组,保证相邻两个元素值得差小于1,问题,最大值和最小值的差 < 1的区间长度最长是多少 Solution: 还是卡了一下,本来以为是模拟就好了,但是卡时间,想来想 ...

  3. C#关于xml文件和TreeView之间的转换解析

    主窗体: using System; using System.Collections; using System.Collections.Generic; using System.Componen ...

  4. Openvswitch手册(7): Interfaces

    我们来看Interfaces ofport: OpenFlow port number for this interface. type: system: An ordinary network de ...

  5. Java虚拟机知识汇总

    先膜一波布丁大佬hhh

  6. vue 解决无法设置滚动位置的问题

    问题描述 在实现锚点定位的时候发现无法设置滚动条的位置. 在Vue中,使用 document.body.scrollTop=952 无法设置滚动条的高度. document.body.scrollTo ...

  7. 【java提高】---HashSet 与TreeSet和LinkedHashSet的区别

    HashSet 与TreeSet和LinkedHashSet的区别 今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象.所以通过取出的数据肯定会有重复,所以要去掉重 ...

  8. list源码4(参考STL源码--侯捷):transfer、splice、merge、reverse、sort

    list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...

  9. 两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin

    老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工 ...

  10. MySQL 分支的选择:Percona 还是 MariaDB

    原文:https://www.biaodianfu.com/mysql-percona-or-mariadb.html 在MySQL被Oracle收购以后,越来越多的人对于MySQL的前景表示了担忧, ...