常用小数舍入标准简介
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类型,所以凡是末尾没加m或M的小数都是double类型。
System.Decimal的Round方法和System.Math结构的Round方法默认情况下,都是采用的银行家舍入,即四舍六入五取偶,其中带一个参数的重载和带两个参数的重载形式下,默认都是银行家舍入。比较特殊的是带三个参数的Round方法,它的第三个参数是MidpointRounding枚举类型,MidpointRounding枚举类型定义了两个枚举值,为了实现四舍五入,我们这里使用的是MidpointRounding.AwayFromZero这个值。MidpointRounding.AwayFromZero枚举值的真正意思是:当一个数字是其他两个数字的中间值时,会将其舍入为两个值中绝对值较大的值。
所以我们既可以使用Round方法的前两种重载形式实现银行家舍入,也可以使用带三个参数的Round方法实现四舍五入,但枚举值必须使用MidpointRounding.AwayFromZero,而不能使用MidpointRounding.ToEven。
相关推荐
excel中四舍五入的三种方法的比较 你知道那种最精确 你知道什么时候用那种方法合适吗
计算2000年1月1日到现在有多少月,多少周(四舍五入)。
下面小编就为大家带来一篇JS处理数据四舍五入(tofixed与round的区别详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
js中一般使用tofixed与round处理数据四舍五入,那么tofixed与round有什么区别呢?下面小编给大家分享JS使用tofixed与round处理数据四舍五入的区别,需要的朋友参考下吧
包括: by分组和class分组的区别 datalines与datalines4语句详解 ...round四舍五入用法举例 SAS常用日期和时间函数 SAS导入文件和数据集用法举例 SAS中3种定义宏变量方法 SAS中nodupkey和nodup的区别 。。。。 等等
如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列...
下面是一个示例:四舍五入保留小数点后两位 复制代码 代码如下:<?php$num1 = 21;echo sprintf(“%0.2f”,$num1).” ”; //输出 21.00$num2 = 16.3287;echo sprintf(“%0.2f”,$num2).” ”; //输出 16.33$...
本文主要介绍在基于Windows CE 平台的英创嵌入式主板下进行C#(Microsoft Visual Stdio.Net 2005)应用程序开发时会常常用到的一些功能函数以及开发方法,这些方法适用 于英创采用WinCE 平台的所有型号嵌入式主板,...
round(x[,y]) 【功能】返回四舍五入后的值 【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。 【返回】数字 【示例】 select round...
5.四舍五入 6.e为底的幂 7.取e为底的对数 8.取10为底对数 9.取平方 10.取平方根 11.求任意数为底的幂 12.取随机数 13.取符号 14.圆周率 15.sin,cos,tan 参数都以弧度为单位 16.Asin,Acos,Atan,Atan2 返回...
◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。 下面是使用这些方法的示例: alert(Math.ceil(25.9)); //26 alert(Math.ceil(25.5)); ...
保留2位有效小数及四舍五入 5.url传递中文的解决方案 6.把123456789转换为12-345-6789的3种方法 7.交换两个指定位置字符的4种方法 8.“%10”的妙用 9.输出21个AAAAAAAAAAAAAAAAAAAAA的巧妙做法
一、Java基础知识 1.Java有那些基本数据类型,... 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期
CInt Integer -32,768 至 32,767,小数部分四舍五入。 CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。 所谓溢出指的是超出处理数据的范围,下面代码是处理数据防止溢出的代码,大家可以自己看...
CInt 会进行四舍五入取最接近它的偶数,也就是说当小数部分为0.5XXXX时,它会取最接近X.5XX的偶数. 如 Cint(0.5)=0 ; Cint(1.5)=2 ; Cint(2.5)=2 ;Cint(3.5)=4 而Int就是取整函数,会去除小数点部分.如 Int(1.5)=1 … ...
四舍五入函数round() (2)非内建函数 import 模块1,模块2(导入所有函数) from 模块 import 模块属性(导入部分函数或类) import 包名.子包名.模块名(使用的时候就是AAA.CCC.c1.func(1) fro
python取余运算符是什么? python取余运算符是%,即表示取模,返回除法的余数。 假设变量: a=10,b=20: 那么b % a 输出结果 0 ...3) round函数遵循四舍五入的法则 >>> 5//3 1 >>> -5//3 -2 >>> int(5.3)
四舍五入 在信号处理应用中,通常需要一种不产生直流偏置的舍入方法,这些方法称为对称方法。 无论十进制值是大于还是小于0.5,它们都通过向上或向下舍入到最接近的整数来工作。 如果十进制值正好是0.5,则需要平局...