Math.Round函数四舍五入】的更多相关文章

Math.Round函数四舍五入的问题   今天客户跑过来跟我说,我们程序里面计算的价格不对,我检查了一下,发现价格是经过折算后的价格,结果是可能小数位较多,而单据上只能打印两位价格,所以就对价格调用Math.Round(price,2)函数进行四舍五入. 而出现问题的单价就是1.805,函数Math.Round(1.085,2)的返回值却是1.80,按照四舍五入的原则,结果应该是1.81才对. 在一番google之后,发现微软是对了,是我们错了.:( 原来四舍五入也有个国际惯例,叫奇进偶舍,意…
有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法. Banker's rounding(银行家舍入)算法,即四舍六入五取偶.事实上这也是 IEEE 规定的舍入标准.因此所有符合 IEEE 标准的语言都应该是采用这一算法的. 这个算法可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一.”    请看下面的例子: Math.Round(3.44, 1); /…
有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法. Banker's rounding(银行家舍入)算法,即四舍六入五取偶.事实上这也是 IEEE 规定的舍入标准.因此所有符合 IEEE 标准的语 言都应该是采用这一算法的. 这个算法可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一.”    请看下面的例子: Math.Round(); //Retur…
Math.round(11.5) = 12; Math.round(-11.5) = -11; Math.round()函数是求某个数的整数部分,且四舍五入.…
有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法. Banker's rounding(银行家舍入)算法,即四舍六入五取偶.事实上这也是 IEEE 规定的舍入标准.因此所有符合 IEEE 标准的语言都应该是采用这一算法的. 这个算法可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一.”    请看下面的例子: Math.Round(3.44, 1); /…
语法: Math.round(x); 参数:x 返回值:给定数字的值四舍五入到最接近的整数 描述: 如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数. 如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数.如果参数的小数部分恰好等于0.5,则舍入到相邻的在正无穷(+∞)方向上的整数.注意,与很多其他语言中的round()函数不同,Math.round()并不总是舍入到远离0的方向(尤其是在负数的小数部分恰好等于0.5的情况下). 因为round()是Math的静态方法,你…
  Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11:floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12:最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),…
Math.Round方法并不是像想象中的四舍五入, 可以从下面的输出结果看出来: Math.Round(3.44, 1); //Returns 3.4. Math.Round(3.45, 1); //Returns 3.4. Math.Round(3.46, 1); //Returns 3.5. Math.Round默认实际的方式是"四舍六入法". 世界上的许多国家已广泛采用"四舍六入法".我国国家科委于1955年就作了推荐."四舍 六入法"可以…
java.lang.Math.Round()使用时候,处理方式整理,方便以后查找   /**  * 测试函数 2014-01-10  */ public class TestMath {     public static void main(String[] args) {         System.out.println("小数点后第一位=5");         System.out.println("正数:Math.round(11.5)=" + Mat…
Math.Round函数四舍五入的问题   今天客户跑过来跟我说,我们程序里面计算的价格不对,我检查了一下,发现价格是经过折算后的价格,结果是可能小数位较多,而单据上只能打印两位价格,所以就对价格调用Math.Round(price,2)函数进行四舍五入. 而出现问题的单价就是1.805,函数Math.Round(1.085,2)的返回值却是1.80,按照四舍五入的原则,结果应该是1.81才对. 在一番google之后,发现微软是对了,是我们错了.:( 原来四舍五入也有个国际惯例,叫奇进偶舍,意…
round()函数四舍五入存在一个问题,遇到5不一定进一.如下图所示: print(round(1.365,2)) #1.36 没进一 print('%.2f'%1.365) print(round(1.3651,2)) #1.37 对的 print('%.2f'%1.3651) print(round(1.465,2)) #1.47 对的 print('%.2f'%1.465) 没想到什么好办法,先改写了一下 def round_rewrite(data,i=0): ''' 四舍五入,解决ro…
一.Math.floor函数讲解 floor原意:地板.Math.floor函数是求一个浮点数的地板,就是求一个最接近它的整数,它的值小于或等于这个浮点数.看下面的例子: package com.qiyuan.util; public class GetInt { /** * Math.floor函数测试 * @param args */ public static void main(String[] args) { System.out.println("Math.floor(-1.1):…
在处理四舍五入时,相信大部分人会使用math.round函数(不同的语言应该都有).有没有考虑过,这个函数是不是自己所需要的? po主碰到的问题是用来计算平均分.有个顶真的学生反映,明明是86.5,怎么显示86.经查,问题为使用round函数,86.5舍入后为86.以下转自百度百科: 银行家舍入 据 说大部分的编程软件都使用的是这种方法,也算是一种国际标准. 所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法.其规则是:当舍去位的数值小于5时,直接舍去该位:当舍去位的数值大于等…
如何使用 Oracle Round 函数 (四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果. SELECT ROUND( number, [ decimal_places ] ) FROM DUAL 参数: number : 欲处理之数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 ) Sample : select round(123.456, 0) from dual; 回传 123 select round(123.4…
(1)如何使用 Oracle Round 函数 (四舍五入)描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果.SELECT ROUND( number, [ decimal_places ] ) FROM DUAL参数:number : 欲处理之数值decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )Sample :select round(123.456, 0) from dual; 回传 123 select round(123.456,…
Oracle中trunc函数.round 函数.ceil函数和floor函数的使用 1.1trunc函数处理数字 trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去. 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数.可选项,忽略它则截去所有的小数部分. selecttrunc(123.98)from du…
1. Math.ceil():向上取整(指取大于该浮点数的最小整数) 2. Math.round():四舍五入取整(注意:当该浮点数距离两端整数一样时,取较大的那个整数,如Math.round(-1.5)=-1) 3. Math.floor():向下取整(指取小于该浮点数的最大整数)…
今天在某.NET Core 群中看到有人在问Math.Round的问题.其实这个问题之前有很多人遇到了,在此总结一下. 开发者为了实现小数点后 2 位的四舍五入,编写了如下代码, var num = Math.Round(12.125, 2); 代码非常的简单,开发者实际得到的结果是12.12, 这与其所预期的四舍五入结果12.13相悖. 其实产生这个结果的原因是由于Math.Round 默认使用的并非是四舍五入的原则,而是四舍六入五成双的原则. 四舍六入五成双 所谓的四舍六入五成双,就是说当确…
代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &…
C#中Math.Round()实现中国式四舍五入 C#中的Math.Round()并不是使用的"四舍五入"法.其实在VB.VBScript.C#.J#.T-SQL中Round函数都是采用Banker's rounding(银行家算法),即:四舍六入五取偶.事实上这也是IEEE的规范,因此所有符合IEEE标准的语言都应该采用这样的算法. .NET 2.0 开始,Math.Round 方法提供了一个枚举选项 MidpointRounding.AwayFromZero 可以用来实现传统意义上…
以前一直会三个函数的使用产生混淆,现在通过对三个函数的原型定义的理解,其实很容易记住三个函数. 现在做一个总结: 1. Math.ceil()用作向上取整. 2. Math.floor()用作向下取整. 3. Math.round() 我们数学中常用到的四舍五入取整. alert(Math.floor(5/2)); alert(Math.ceil(5/2)); 4.幂 alert(Math.pow(10 , 2));//10的2次方 5.js除法四舍五入保留小数点后两位写法 <!DOCTYPE…
前言: 一定要说 坑爹的微软! 坑爹的微软! 坑爹的微软!  重要的事情说 三遍 ! 摘录 SMDN 示例 下面的示例演示就近舍入. C# C++ VB   Math.Round(3.44, 1); //Returns 3.4. Math.Round(3.45, 1); //Returns 3.4. Math.Round(3.46, 1); //Returns 3.5. Math.Round(4.34, 1); // Returns 4.3 Math.Round(4.35, 1); // Ret…
在C#的数值运算中,有时候需要对计算结果进行四舍五入操作,此时就可使用内置方法Math.Round方法来实现四舍五入操作,Math.Round方法有多个重载函数,支持设置有效位数进行四舍五入,如果没有设定有效位数,默认四舍五入到对应有效位数. Math.Round方法常用的几个重载函数有: (1)针对十进制decimal类型数据四舍五入,直接保留整数位decimal Round(decimal d); (2)针对双精度类型double类型数据四舍五入,直接保留整数位(1)针对十进制decimal…
public static long round(double a) 返回最接近参数的 long.结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型.换句话说,结果等于以下表达式的值: (long)Math.floor(a + 0.5d) 按照四舍五入的理解,-11.5约等于-12才对,但是Java中的round采取加上1/2再向下取整的方式,所以在类似这种.5的数据时不能按四舍五入理解. 又测试了下Excel表格,发现它的round函数为四舍五入.…
C#中的Math.Round()并不是使用的"四舍五入"法.实际上是四舍六入五取偶. 对于这个问题我们常见的解决方式是使用MidpointRounding.AwayFromZero,这个枚举来实现. Eg: Math.Round(2.5) //result:2 Math.Round(3.5) //result:4 Math.Round(2.5, MidpointRounding.AwayFromZero); // result:3 Math.Round(3.5, MidpointRou…
private  float ConvertFloat4Se5Ru(float flotValue) {              int iValue = (int)Math.Round(flotValue * 10000); //小数点后两位前移,并四舍五入              flotValue = (float)(iValue / 10000.00f);              return flotValue; } 申明:以上文字为"武汉汉码科技有限公司"原创,转载时…
今天由于测试场景,利息的计算中涉及小数点的保留.保留的规则是:两位小数+四舍五入方式 使用的语言是JAVA, 看了许多网上的方法.因为最后保留的小数还会进行计算.所以我考虑最好不要保留的结果是String类型, 研究的方法有: 1.String result = String.format("%.2f", 变量名称) 2.String result = new java.text.DecimalFormat("#.00").format(变量名称) 3.double…
callable()函数检查一个函数是否可以调用 如果返回True,object仍然可能调用失败:但如果返回False,调用对象ojbect绝对不会成功. 对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True. callable(object)stride 卷积中的步幅是另一个构建卷积神经网络的基本操作将蓝色框移动两个步长,你将会得到83的结果.当你移动到下一行的时候,你也是使用步长2而不是步长1,所以我们将蓝色框移动到这里: 1.Ma…
在最近版本的Delphi Pascal 编译器中,Round 函数是以 CPU 的 FPU (浮点部件) 处理器为基础的.这种处理器采用了所谓的 "银行家舍入法",即对中间值 (如 5.5.6.5) 实施Round函数时,处理器根据小数点前数字的奇.偶性来确定舍入与否,如 5.5 Round 结果为 6,而 6.5 Round 结果也为6, 因为 6 是偶数. 对于XXX.5的情况,整数部分是奇数,那么会Round Up,偶数会Round Down,例如: x:= Round(17.5…
Math.Round默认采用的不是四舍五入法, 而是四舍六入的银行家算法, 如何找回四舍五入法? Math.Round默认采用的不是四舍五入法, 而是四舍六入的银行家算法,  也就是四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一, 这个算法比四舍五入更精确些. Response.Write("<BR>" + Math.Round(144.34, 1)); --144.3            Response.Write("<…