.Net函数Math.Round你会用吗?

简介: 一直以为Math.Round就是四舍五入,谁知道没加参数,得到的结果就是有问题测试代码:void Main(){ string.

一直以为Math.Round就是四舍五入,谁知道没加参数,得到的结果就是有问题

测试代码:

void Main()
{
    string.Format("Round  {0} = {1}",2.4M,Math.Round(2.4M,0)).Dump();
    string.Format("Round  {0} = {1}",2.5M,Math.Round(2.5M,0)).Dump();
    string.Format("Round  {0} = {1}",2.6M,Math.Round(2.6M,0)).Dump();
    string.Format("Round  {0} = {1}",3.4M,Math.Round(3.4M,0)).Dump();
    string.Format("Round  {0} = {1}",3.5M,Math.Round(3.5M,0)).Dump();
    string.Format("Round  {0} = {1}",3.6M,Math.Round(3.6M,0)).Dump();
}

输出内容:

Round  2.4 = 2
Round  2.5 = 2
Round  2.6 = 3
Round  3.4 = 3
Round  3.5 = 4
Round  3.6 = 4

官方文档:https://msdn.microsoft.com/zh-cn/library/system.midpointrounding(v=vs.110).aspx
这里写图片描述

其实,我们要做到四舍五入,只要调用重载函数,指定舍入的方式就行了,如:

string.Format("Round  {0} = {1}",2.5M,Math.Round(2.5M,0, MidpointRounding.AwayFromZero)).Dump();

这个结果,就是3了。

相关文章
|
算法 C#
一起谈.NET技术,总结字符串比较函数
  最近一段时间一直在重看CLR via C# , 这次把字符串比较的函数总结下。   1.Compare和CompareTo大PK   首先是我们最常用的String.Compare和CompareTo实例方法,先来看看这两个方法:   我们通过这个可以直观地看到,String的静态方法要比CompareTo多出好多的方法重载,其实这也是两者的最大区别,也就是说String.Compare有着更多的功能选项供我们控制。
906 0
|
C#
一起谈.NET技术,C# 中奇妙的函数--联接序列的五种简单方法
  今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类:   同类的联接   Concat()   Union()   不同类的联接   Zip()   Join()   GroupJoin()   Concat() – 串联序列   最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1.
1020 0
|
C# 数据库
一起谈.NET技术,C# 中奇妙的函数之ToLookup
  我将和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
1100 0
|
C#
C#“.NET技术” 中奇妙的函数--联接序列的五种简单方法
  今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类:   同类的联接   Concat()   Union()   不同类的联接   Zip()   Join()   GroupJoin()   Concat() – 串联序列   最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1.
908 0
|
C# 数据库
C“.NET技术”# 中奇妙的函数之ToLookup
  我将和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
1009 0
|
C#
C# 中奇妙的函数--联接序列的五种“.NET研究”简单方法
  今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类:   同类的联接   Concat()   Union()   不同类的联接   Zip()   Join()   GroupJoin()   Concat() – 串联序列   最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1.
970 0
|
C#
C# 中奇妙的函数之ToL“.NET研究”ookup
  我将和大家一起来学学C#中上海闵行企业网站设计与制作一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
937 0
|
SQL 存储 .NET
SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文: SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程、触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试。
994 0