网站首页排版,什么网站可以自己接工程做预算,营销培训师,建设的网站打开速度很慢Math.Round()并不是严格意义上的是四舍五入函数。它默认的执行的是“银行家舍入”算法#xff0c;即四舍六入五取偶。概括为#xff1a;四舍六入五考虑、五后非零就进一#xff0c;五后皆零看奇偶#xff0c;五前为偶应舍去、五前为奇要进一。 当为5时#xff0c;取离着最…Math.Round()并不是严格意义上的是四舍五入函数。它默认的执行的是“银行家舍入”算法即四舍六入五取偶。概括为四舍六入五考虑、五后非零就进一五后皆零看奇偶五前为偶应舍去、五前为奇要进一。 当为5时取离着最近的偶数。见下图 测试代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace MathRoundTest { class Program { static void Main(string[] args) { Console.WriteLine(Math.Round(1234.5).ToString()); //输出1234 Console.WriteLine(Math.Round(1234.50).ToString()); //输出1234 Console.WriteLine(Math.Round(1235.5).ToString()); //输出1236 Console.WriteLine(Math.Round(1235.50).ToString()); //输出1236 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(-1234.5).ToString()); //输出-1234 Console.WriteLine(Math.Round(-1234.50).ToString()); //输出-1234 Console.WriteLine(Math.Round(-1235.5).ToString()); //输出-1236 Console.WriteLine(Math.Round(-1235.5).ToString()); //输出-1236 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(123.45, 1).ToString()); //输出123.4 Console.WriteLine(Math.Round(123.55, 1).ToString()); //输出123.6 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(-123.45, 1).ToString()); //输出-123.4 Console.WriteLine(Math.Round(-123.55, 1).ToString()); //输出-123.6 Console.WriteLine(---------------------------------------------); Console.ReadLine(); } } }
如果要实现我们所需要的四舍五入需要使用使用四舍五入策略参数MidpointRounding.AwayFromZero 当为5时取远离0的数值。 测试代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace MathRoundTest { class Program { static void Main(string[] args) { Console.WriteLine(Math.Round(1234.5,MidpointRounding.AwayFromZero).ToString()); //输出1235 Console.WriteLine(Math.Round(1234.50, MidpointRounding.AwayFromZero).ToString()); //输出1235 Console.WriteLine(Math.Round(1235.5, MidpointRounding.AwayFromZero).ToString()); //输出1236 Console.WriteLine(Math.Round(1235.50, MidpointRounding.AwayFromZero).ToString()); //输出1236 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(-1234.5, MidpointRounding.AwayFromZero).ToString()); //输出-1235 Console.WriteLine(Math.Round(-1234.50, MidpointRounding.AwayFromZero).ToString()); //输出-1235 Console.WriteLine(Math.Round(-1235.5, MidpointRounding.AwayFromZero).ToString()); //输出-1236 Console.WriteLine(Math.Round(-1235.5, MidpointRounding.AwayFromZero).ToString()); //输出-1236 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(123.45, 1, MidpointRounding.AwayFromZero).ToString()); //输出123.5 Console.WriteLine(Math.Round(123.55, 1, MidpointRounding.AwayFromZero).ToString()); //输出123.6 Console.WriteLine(---------------------------------------------); Console.WriteLine(Math.Round(-123.45, 1, MidpointRounding.AwayFromZero).ToString()); //输出-123.5 Console.WriteLine(Math.Round(-123.55, 1, MidpointRounding.AwayFromZero).ToString()); //输出-123.6 Console.WriteLine(---------------------------------------------); Console.ReadLine(); } } }