当前位置: 首页 > news >正文

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.lryc.cn/news/349894.html

相关文章:

  • 001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮
  • Vue 快速入门:Vue初级
  • 什么是IP跳变?
  • Linux服务器lvm磁盘管理fdisk和df磁盘大小不同修改
  • AOP是什么和OOP的区别
  • Clickhouse 字符串函数 - 2
  • 【个人成长】Fitten Code 测试案例分析
  • 管理Anaconda虚拟环境的实用指南
  • python如何在图片上写斜体字
  • 算法练习第22天|39. 组合总和、40.组合总和II
  • CCF PTA 2022年11月C++大富翁游戏
  • React获取form表单值的N种方式
  • Apache Knox 2.0.0使用
  • Tomcat 内核详解 - Web服务器机制
  • 几个人脸库对于面部动作识别的功能比较
  • IDEA 使用Alibaba Cloud Toolkit 实现远程 自动部署
  • 蓝桥杯备战15.完全二叉树的权值
  • 【前端】LayUI监听事件汇总
  • 【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(1.VCS NLP VC LP)
  • Elasticsearch 实现word、pdf、txt、excel文档内容快速检索(保姆级教程)
  • [初学rust] 04_rust复合类型
  • 什么是Zoho CRM客户关系系统管理?
  • 青岛东软载波子公司东软载波微电子授权世强硬创代理,出货量累计超20亿颗
  • YOLO损失函数——SIoU和Focal Lossr损失函数解析
  • C++:编程世界的永恒之石
  • 线上3D博物馆搭建简单吗?有何优势?有哪些应用场景?
  • Rust 语言的“命名空间” —— mod
  • 加速科技突破2.7G高速数据接口测试技术
  • 从0开始搭建一个react项目 第一 二 三天
  • LSTM与GAN创新结合!模型性能起飞,准确率超98%