Math.Round()函数说明

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();
        }
    }
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704096.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA云his医院管理系统源码 SaaS模式+融合B/S版电子病历 基于云计算技术开发的云his医院管理系统

JAVA云his医院管理系统源码 SaaS模式融合B/S版电子病历 基于云计算技术开发的云his医院管理系统 定义 美国著名教授Morris.Collen于1988年曾著文为医院信息系统下了如下定义:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息…

YOLO损失函数——SIoU和Focal Lossr损失函数解析

1. 概述 YOLO(You Only Look Once) 系列模型以其实时目标检测能力而闻名,其有效性在很大程度上归功于其专门设计的损失函数。在本文中,这里将深入探讨YOLO演进中不可或缺的各种YOLO损失函数,并重点介绍它们在PyTorch中…

第83天: 代码审计-PHP 项目RCE 安全调试追踪代码执行命令执行

案例一:CNVD拿1day-RCE命令执行-百家CMS 这里用代码审计系统搜索system,可以利用的是第一种 打开看细节 查找函数引用 查找$_file第一次出现的地方 这个时候就明白了,必须上传文件,然后利用文件名,去执行system命令 …

将PDF转换成电子杂志,轻松打造畅销内容!

在数字化时代,将PDF转换成电子杂志是一种非常受欢迎的内容创作方式。这种方式不仅可以提高内容的传播效果,还可以为创作者带来更多的收益。那么,如何轻松地将PDF转换成电子杂志,打造畅销内容呢? 市面上有许多可以将PDF…

MQTT_介绍_1.1

历史 1999年:MQTT最初由IBM的Andy Stanford-Clark和Cirrus Link的Arlen Nipper开发,用于满足石油和天然气公司在远程地区监控设备的需求。 2006年:IBM发布了MQTT的最初开源实现,但此时MQTT并未获得广泛的关注。 2010年&#xff…

企业计算机服务器中了faust勒索病毒如何处理,faust勒索病毒解密恢复

随着网络技术的不断发展与应用,越来越多的企业利用网络走向了数字化办公模式,网络也极大地方便了企业生产运营,大大提高了企业生产效率,但对于众多企业来说,企业的数据安全一直是大家关心的主要话题,保护好…

虚拟机不同网卡模式的使用

前言 了解虚拟机不同网卡模式,并能正确使用网卡连接模式来处理工作学习上的问题,有时候是非常重要的。也许,你也有过使用虚拟机过程中,在网络上花费不少时间的情况,那么这篇文章可能适合你。 一、区别 如上图&#x…

管道液位传感器与浮球开关哪个可靠性强?

光电管道传感器采用红外光学组件,利用光折射原理来进行液位检测。相比传统的机械式传感器,光电传感器不容易出现低精度和卡死失效的问题。机械式传感器需要通过机械装置来感知液位,容易受到机械零件的磨损和故障的影响,从而导致传…

源代码防泄漏之沙盒技术分析

随着企业信息化的快速发展,对于单位来说,网络中包含了很多重要的信息资料,比如网络中积累和掌握了大量的研发数据、生产数据和运营信息等,组织不希望这些资料离开企业内部的网络环境,甚至不允许在网络外部传递与交流&a…

一招教你学浪app视频如何下载到本地

在这个知识爆炸的时代,学习从未如此便捷,而今天,我要分享的这个小秘密,将彻底改变你获取知识的方式:一招教你如何将学浪课程轻松下载到本地,让精彩的学习内容随时随地触手可及,开启你的随身学习…

如何利用R包进行主成分分析和可视化

一. 使用R包“FactoMineR”进行主成分分析(PCA) 基本步骤如下: 安装和加载包:如果尚未安装,首先安装“FactoMineR”包,然后加载它: install.packages("FactoMineR")library(FactoM…

4种企业防泄密的办法,强烈推荐第二种

4种企业防泄密的办法,强烈推荐第二种 企业信息泄密常见的原因有内部人员、黑客、违规收集信息、第三方合作商,以下将为你详细分析这些泄密原因以及应对的方法。 1、内部人员泄密 内部员工由于能够接触到敏感数据,成为主要的泄露数据群体。这…