Math.round()

在 JAVA 中四舍五入采用 Math.round(T a) 函数,函数返回的是一个 long 类型的长整型,参数 a 可以是 double 也可以是 float。

查看 JDK 源码:

  

public static long round(double a) {
        if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5
            return (long)floor(a + 0.5d);
        else
            return 0;
}

  

public static double floor(double a) {
        return StrictMath.floor(a); // default impl. delegates to StrictMath
}

  

 public static double floor(double a) {
     return floorOrCeil(a, -1.0, 0.0, -1.0);
 }

  

其实具体实现还是挺复杂的。

需要注意的是 a 为负数的情况。

 1 System.out.println("小数点后第一位=5");
 2 System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));
 3 System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));
 4 System.out.println();
 5 System.out.println("小数点后第一位<5");
 6 System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));
 7 System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));
 8 System.out.println();
 9 System.out.println("小数点后第一位>5");
10 System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));
11 System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));

输出结果是:

小数点后第一位=5
正数:Math.round(11.5)=12
负数:Math.round(-11.5)=-11

小数点后第一位<5
正数:Math.round(11.46)=11
负数:Math.round(-11.46)=-11

小数点后第一位>5
正数:Math.round(11.68)=12
负数:Math.round(-11.68)=-12

正数和我们平时学的一样,负数在小数点后第一位为5时,直接舍去小数部分,大于5时减一,小于5时直接舍去小数部分。

时间: 2024-10-12 10:29:06

Math.round()的相关文章

WinCE的C#编程,对float型进行四舍五入保留两位小数,小数进行四舍五入操作,Math.Round的应用案例。

private  float ConvertFloat4Se5Ru(float flotValue) { int iValue = (int)Math.Round(flotValue * 10000); //小数点后两位前移,并四舍五入 flotValue = (float)(iValue / 10000.00f); return flotValue; } 申明:以上文字为"武汉汉码科技有限公司"原创,转载时务必注明出处. 技术分享,沟通你我,共同进步!www.hanma-scan.c

由一篇博文做出的代码,不用Math.round()如何实现其功能

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <meta name = "author" content="chen siming ,Gabrielchen,chengdu "> <title>bitOperation</title> <script>

C#取整函数Math.Round、Math.Ceiling和Math.Floor

1.Math.Round:四舍六入五取偶 引用内容 Math.Round(0.0) //0Math.Round(0.1) //0Math.Round(0.2) //0Math.Round(0.3) //0Math.Round(0.4) //0Math.Round(0.5) //0Math.Round(0.6) //1Math.Round(0.7) //1Math.Round(0.8) //1Math.Round(0.9) //1 说明:对于1.5,因要返回偶数,所以结果为2. 2.Math.Ce

C#中Math.Round()实现中国式四舍五入

原文:C#中Math.Round()实现中国式四舍五入 C#中Math.Round()实现中国式四舍五入 C#中的Math.Round()并不是使用的"四舍五入"法.其实在VB.VBScript.C#.J#.T-SQL中Round函数都是采用Banker's rounding(银行家算法),即:四舍六入五取偶.事实上这也是IEEE的规范,因此所有符合IEEE标准的语言都应该采用这样的算法. .NET 2.0 开始,Math.Round 方法提供了一个枚举选项 MidpointRound

Math.round四舍五入

在用Math.Round做数据处理的时候,经常遇到81.25保留一位小数,则为81.2的情况,经过材料查找,Math.Round四舍五入算法采用"银行家舍入(Banker's rounding)",是IEEE规定的舍入标准,所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法.其规则是:当舍去位的数值小于5时,直接舍去该位:当舍去位的数值大于等于6时,在舍去该位的同时向前位进一:当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则

js中Math.round、parseInt、Math.floor和Math.ceil小数取整总结

Math.round.parseInt.Math.floor和Math.ceil 都可以返回一个整数,具体的区别请看下面的总结. 一.Math.round 作用:四舍五入,返回参数+0.5后,向下取整. 如: Math.round(5.57) //返回6 Math.round(2.4) //返回2 Math.round(-1.5) //返回-1 Math.round(-5.8) //返回-6 二.parseInt 作用:解析一个字符串,并返回一个整数,这里可以简单理解成返回舍去参数的小数部分后的

JavaSE8基础 Math.round 简单的四舍五入成整数

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) code: package jizuiku1; public class Demo001 { public static void main(String[] args) { //Math.round 简单的四舍五入.还有一种四舍五入是 科学计算中的四舍六入五凑偶 规则复杂. //在大学中进行实验数据处理时,要用后者! Syste

java中常用到的math方法(Math.PI、Math.random()、Math.abs(double)、Math.floor(double)、Math.ceil(double)、Math.round(double))

public class MathDemo { public static void main(String args[]){ /** * abs求绝对值 */ System.out.println(Math.abs(-10.4));    //10.4 System.out.println(Math.abs(10.1));     //10.1 /** * ceil天花板的意思,就是返回大的值,注意一些特殊值 */ System.out.println(Math.ceil(-10.1));  

Javascript Math.ceil()与Math.round()与Math.floor()区别

Math.ceil()向上舍入 1 2 3 alert(Math.ceil(20.1)) //输出 21 alert(Math.ceil(20.5)) //输出 21 alert(Math.ceil(20.9)) //输出 21 Math.round标准的四舍五入 1 2 3 alert(Math.round(20.1)) //输出 20 alert(Math.round(20.5)) //输出 21 alert(Math.round(20.9)) //输出 21 Math.floor()向下舍

JavaScript中的Math.ceil()、Math.round()、Math.floor()

1. Math.ceil():向上取整(指取大于该浮点数的最小整数) 2. Math.round():四舍五入取整(注意:当该浮点数距离两端整数一样时,取较大的那个整数,如Math.round(-1.5)=-1) 3. Math.floor():向下取整(指取小于该浮点数的最大整数)