C#中保留两位小数但不四舍五入的最优做法
多种做法比较
class Program_保留两位小数但不四舍五入
{
static void Main(string[] args)
{
Helper.Run(delegate ()
{
method1();
}, 1000000, " 1.先乘后除,再强制类型转换 "); Helper.Run(delegate ()
{
method2();
}, 1000000, " 2.使用substring截取字符串,然后转换 "); Helper.Run(delegate ()
{
method4();
}, 1000000, " 4.使用math.floor "); Helper.Run(delegate ()
{
method5();
}, 1000000, " 5.使用正则来处理字符串数据,然后再类型转换 "); Console.ReadKey();
} const double num = 15.1257; static void method1()
{
var tmp = (int)(num * 100) / 100.00;
} static void method2()
{
var str = (num).ToString();
var tmp = double.Parse(str.Substring(0, str.IndexOf('.') + 3));
} //static void method3()
//{
// var tmp = double.Parse((num).ToString("#0.00"));
//} static void method4()
{
var tmp = Math.Floor(num * 100) / 100.00;
} static void method5()
{
var tmp = double.Parse(Regex.Match(num.ToString(), @"[\d]+.[\d]{0,2}").Value);
} //结果:method1 最快,而使用系统的方法或者字符串截取的方法都会慢一些
}
帮助类
public static class Helper
{
public static void Run(Action action, int stepTotal = 10000, string description = "")
{
DateTime startTime = DateTime.Now;
for (int i = 0; i < stepTotal; i++)
{
action();
}
DateTime endTime = DateTime.Now;
var ts = endTime - startTime;
Console.WriteLine(description + "_运行“" + stepTotal.ToString() + "”次耗时:" + (endTime - startTime).TotalMilliseconds.ToString() + "ms");
}
}
C#中保留两位小数但不四舍五入的最优做法的更多相关文章
- Python中保留两位小数的几种方法
https://blog.csdn.net/Jerry_1126/article/details/85009810 保留两位小数,并做四舍五入处理方法一: 使用字符串格式化>>> a ...
- PHP_保留两位小数而且四舍五入_保留两位小数而且不四舍五入
php保留两位小数而且四舍五入 $num = 123213.666666; echo sprintf("%.2f", $num); php保留两位小数而且不四舍五入 $num = ...
- PHP_保留两位小数并且四舍五入_保留两位小数并且不四舍五入
php保留两位小数并且四舍五入 $num = 123213.666666; echo sprintf("%.2f", $num); php保留两位小数并且不四舍五入 php进一法取 ...
- [转] javascript 保留两位小数 (且不四舍五入)
本文转自:https://blog.csdn.net/qq_40171039/article/details/79729503 保留两位小数且不四舍五入: 方法一: var a = 2.461; va ...
- php保留两位小数并且四舍五入 保留两位小数并且不四舍五入
php保留两位小数并且四舍五入 $num = 5566.56831; echo sprintf("%.2f", $num); php保留两位小数并且不四舍五入 $num = 556 ...
- Oracle中保留两位小数
在最近的项目开发中,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种: (1)在写SQL的时候,直接保留两位小数 (2)在java代码里面将查询出来的数进行格式化处理,保留两位 ...
- PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
小数例子: PHP保留两位小数并且四舍五入 1 $n=0.1265489; 2 echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprin ...
- js保留两位小数,不四舍五入
//不进行四舍五入,保留两位小数 function getKeepTwoDecimals(val) { var newVal = (parseInt(val * 100) / 100).toFixed ...
- python中保留两位小数
今天写程序的时候碰到了一个问题关于如何控制浮点数只显示小数点后两位,正常的想法是用round函数,例如 round(a, 2),但是在面对下面的问题时候round就不太好用了 >>> ...
随机推荐
- nginx 反向代理(Reverse Proxy)与耗时记录
反向代理服务器位于实际的服务器之前,他能够缓存服务器响应,加速访问,同时也启到了负载均衡服务器的效果.反向代理服务器解析客户端请求,根据负载均衡算法转发到不同的后台服务器上.用户和后台服务器之间不再有 ...
- C# 文件压缩与解压(ZIP格式)
在企业开发过程中经常会遇到文件的压缩与解压,虽然网上很多流行的压缩文件格式都是RAR的,但是由于RAR不是一个开放的标准,因此ZIP成了更多人的选择.如果你不想自己开发的话可以选择开源的项目,比如Sh ...
- 解决tomcat默认45s启动超时的问题
进入工作空间目录下的.metadata\.plugins\org.eclipse.wst.server.core子目录,找到servers.xml文件,编辑它,找到start-timeout这一行,把 ...
- nyoj 84 阶乘的0
点击打开链接 阶乘的0 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N& ...
- Unable to open serial port /dev/ttyUSB0
ubuntu12.04使用USB转串口时出现权限不够问题,如下 Unable to open serial port /dev/ttyUSB0 权限不够 解决办法: 通过增加udev规则来实现.步骤如 ...
- U-boot 之TFTP服务器配置
一.PC端配置1.关闭防火墙 [root@gliethttp root]# /etc/init.d/iptables stop2.使用setup启动tftp [root@gliethttp roo ...
- Spring配置事务 http://www.cnblogs.com/leiOOlei/p/3725911.html
http://www.cnblogs.com/leiOOlei/p/3725911.html JNDI方式配置数据源: <?xml version="1.0" encodin ...
- [ CodeVS冲杯之路 ] P1053
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1053/ 直接扫一遍串,把字母对应的 ascii 码直接做数组下标,交给数组统计 最后查询一遍数组的 'a'-'z' , ...
- 接口自动化的根基--HTTP协议
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- Google Protocol Buffer 协议
1. Protocol Buffers 简介 Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化 ...