`
zxlyecf2
  • 浏览: 133124 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于四舍五入的小区别

    博客分类:
  • C#
阅读更多

常用小数舍入标准简介

1、标准四舍五入(Math.Round();)

当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。

2、银行家舍入(decimal.Round())

所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍去该位。

下面举.NET中处理decimal类型的一个例子:

using System; 
using System.Collections.Generic; 
using System.Text; 
 
namespace ConsoleApplication2 
{ 
        class Program 
        { 
                static void Main(string[] args) 
                { 
                        //Floor方法向负无穷方向舍入为最接近的整数 
                        Console.WriteLine(decimal.Floor(-1.3m)); //-2 
                        Console.WriteLine(decimal.Floor(3.5m)); //3 
                        Console.WriteLine(decimal.Floor(4m));     //4 
 
                        //Truncate方法向零方向舍入为整数 
                        Console.WriteLine(decimal.Truncate(-1.3m));//-1 
                        Console.WriteLine(decimal.Truncate(3.5m));//3 
                        Console.WriteLine(decimal.Truncate(4m));    //4 
 
                        //实现正的decimal数值的四舍五入,则必须用下面的技巧,保留到小数点后2位,就用100,保留到小数点后3位就用1000,依次类推 
                        decimal a = 8.335m, b = 8.345m; 
                        Console.WriteLine(decimal.Truncate(a * 100 + 0.5m) / 100); //8.34 
                        Console.WriteLine(decimal.Truncate(b * 100 + 0.5m) / 100); //8.35 
 
                        //实现负的decimal数值的四舍五入,则必须用下面的技巧,保留到小数点后2位,就用100,保留到小数点后3位就用1000,依次类推 
                        decimal c = -8.335m, d = -8.345m; 
                        Console.WriteLine(decimal.Truncate(c * 100 - 0.5m) / 100); //8.34 
                        Console.WriteLine(decimal.Truncate(d * 100 - 0.5m) / 100); //8.35 
                        Console.WriteLine(); 
                } 
        } 
}

 

 注意:小数默认的类型是double类型,所以凡是末尾没加mM的小数都是double类型。

System.DecimalRound方法和System.Math结构的Round方法默认情况下,都是采用的银行家舍入,即四舍六入五取偶,其中带一个参数的重载和带两个参数的重载形式下,默认都是银行家舍入。比较特殊的是带三个参数的Round方法,它的第三个参数是MidpointRounding枚举类型,MidpointRounding枚举类型定义了两个枚举值,为了实现四舍五入,我们这里使用的是MidpointRounding.AwayFromZero这个值。MidpointRounding.AwayFromZero枚举值的真正意思是:当一个数字是其他两个数字的中间值时,会将其舍入为两个值中绝对值较大的值。

所以我们既可以使用Round方法的前两种重载形式实现银行家舍入,也可以使用带三个参数的Round方法实现四舍五入,但枚举值必须使用MidpointRounding.AwayFromZero,而不能使用MidpointRounding.ToEven

3
1
分享到:
评论

相关推荐

    excel中四舍五入的三种方法的比较

    在Excel电子表格软件中,四舍五入是一个常见的数值处理操作,用于将数字调整到指定的小数位数。本文将详细对比三种不同的四舍五入方法:ROUND函数、MID函数配合FIND函数以及INT和*10的组合,帮助你了解它们的特点,...

    计算2000年1月1日到现在有多少月,多少周(四舍五入)。

    根据给定的信息,本文将详细解释如何在Oracle数据库中计算从2000年1月1日至今经过了多少个月和多少个星期,并且结果需要进行四舍五入处理。 ### Oracle数据库中的日期函数 在Oracle数据库中,进行日期计算是非常...

    财税实务:Excel四舍五入、不四舍五入或取整的相关函数.pdf

    今天,我们将介绍 Excel 函数在财税实务中的应用,特别是四舍五入、不四舍五入或取整的相关函数。 一、ROUND 函数 ROUND 函数是 Excel 中的一个基本函数,用于对数字进行四舍五入操作。其基本语法为:ROUND(目标...

    JS使用tofixed与round处理数据四舍五入的区别

    在JavaScript编程中,处理浮点数四舍五入的方法主要有两种,即Number对象的toFixed()方法和Math对象的round()方法。这两种方法虽然都能实现四舍五入的效果,但它们在四舍五入的规则和应用场景上存在一定的差异。 ...

    1.3 数学运算初步讲解(整除、取模、四舍五入基本应用)

    “数学运算初步讲解(整除、取模、四舍五入基本应用)” 数学运算初步讲解 在 C++ 编程中,数学运算是非常重要的一部分,本节课程将讲解整除、取模和四舍五入的基本应用。 整除的概念 在 C++ 中,除法运算比较...

    asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数

    ASP 中的数值取整与四舍五入 ASP 是一种服务器端脚本语言,广泛应用于web开发中。今天我们要讨论的是 ASP 中的数值取整问题。在 ASP 中,获取一个数的整数部分可以使用 Fix 函数,但是 Fix 函数的作用是将小数部分...

    Excel表格取整函数-四舍五入为最接近的偶数函数EVEN.doc

    Excel 取整函数 - 四舍五入为最接近的偶数函数 EVEN Excel 表格取整函数是指在 Excel 中对数字进行取整操作的函数,包括四舍五入、截去小数、向上取整、向下取整等多种方式。其中,四舍五入为最接近的偶数函数 EVEN...

    C#中Decimal类型截取保留N位小数并且不进行四舍五入操作

    然而,在处理Decimal类型的数值时,有时我们需要保留特定的小数位数,但又不希望进行四舍五入操作,而是直接截取小数部分。在C#标准库中,`Decimal.Round()`方法可以用来保留小数位数,但它会执行四舍五入操作。针对...

    部编版第5课时 用四舍五入法求商的近似数.doc

    本课时的主题是“用四舍五入法求商的近似数”,旨在让学生掌握如何在计算过程中根据需要取商的近似值,并理解其在实际问题解决中的应用。 首先,我们要明确近似数的概念。近似数是相对于精确数而言的,它是在一定...

    JS处理数据四舍五入(tofixed与round的区别详解)

    常用的方法包括toFixed()和round(),它们都能够实现数字的四舍五入,但用法和四舍五入的规则却有着明显的区别。在这里,我们将详细介绍toFixed()和round()这两个方法的特点、使用场景以及它们的规则差异。 首先,...

    整理的各种SAS文档资料(干货)

    包括: by分组和class分组的区别 datalines与datalines4语句详解 ...round四舍五入用法举例 SAS常用日期和时间函数 SAS导入文件和数据集用法举例 SAS中3种定义宏变量方法 SAS中nodupkey和nodup的区别 。。。。 等等

    北师大四年级数学上册近似数PPT课件.pptx

    比如,某市在校学生今年共植树148264棵,通过四舍五入,我们可以得到近似数:约148260棵(四舍五入到十位)、约148300棵(四舍五入到百位)、约148000棵(四舍五入到千位)、约150000棵(四舍五入到万位),这样简化...

    北师大版数学四上:《近似数》同步练习题.docx

    - ⑵正确,如果一个数四舍五入到千位是6000,那么原来的数最大可能是6499,因为四舍五入后只保留到千位且不超过6500。 - ⑶正确,19□785省略万位后的尾数约是3万,意味着千位上的数应小于5,所以可以填0、1、2、3...

    三菱PLC FX系列 Q系列 L系列 PLC 程序用到 浮点数 小数点的程序案例 例子.zip

    2. 精度控制:理解浮点数运算可能出现的精度问题,如四舍五入误差。 3. 溢出检测:检查运算结果是否超出浮点数的表示范围,防止错误的计算结果。 4. 异常处理:设置适当的错误处理机制,如除以零或非法数据输入等...

    五年级上册数学课件-3.6 求小数的近似值丨苏教版(共10张PPT).ppt

    在小学五年级上册的数学课程中,"3.6 求小数的近似值"是一个重要的知识点,主要涉及如何使用“四舍五入法”来获取一个数的近似值。这一课件旨在帮助学生理解和掌握近似值的概念,并通过实际应用提升他们的数学思维...

    四年级数学上册 走进大自然一课一练(无答案) 北师大版

    - 四舍五入到“万平方米”,意味着将数值保留到万位并进行四舍五入。例如,四万三千七百二十一四舍五入到“万平方米”是44万平方米。 2. 数位的理解与组成: - 了解数位的概念,如1135420是七位数,最高位是百万...

    小百户镇上学期五年级数学期中试题精选.doc

    3. 四舍五入的近似值:一个两位小数四舍五入到整数,若保留的整数是3,那么最小时应该是2.5(四舍),最大时是3.4(五入)。 4. 循环小数的表示:8÷3的商是一个无限循环小数,简便表示为8/3或者2.666...,也可以...

    积的近似数练习题及答案2精选.doc

    这些练习题覆盖了积的近似数的基本概念和计算方法,包括精确数与近似数的区别,四舍五入规则的应用,以及在实际问题中的应用。通过这些练习,学生能够巩固对积的近似数的理解,并提高他们在解决实际问题中的能力。

    《大数的认识》教学设计(第5课时).docx

    《大数的认识》教学设计(第5课时)聚焦于教育领域,特别是数学教育,旨在帮助学生理解和掌握近似数的概念以及如何运用“四舍五入”法来求亿以内数的近似数。教学目标明确,旨在让学生理解近似数的含义,学会“四舍...

Global site tag (gtag.js) - Google Analytics