`

java.lang.Math.round()学习

阅读更多
<!-- 正文开始 -->

public class MathTest {   
    public static void main(String[] args) {   
        System.out.println("小数点后第一位=5");   
        System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));   
        System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));   
        System.out.println();   
  
        System.out.println("小数点后第一位<5");   
        System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));   
        System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));   
        System.out.println();   
  
        System.out.println("小数点后第一位>5");   
        System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));   
        System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));   
    }   
}  

运行结果:

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

根据上面例子的运行结果,我们还可以按照如下方式总结,或许更加容易记忆:

1、参数的小数点后第一位<5,运算结果为参数整数部分。
2、参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。
3、参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。

 

终结:大于五全部加,等于五正数加,小于五全不加。

转载自:http://blog.sina.com.cn/s/blog_4b06743c0100lst3.html

-----------------------------------------------------------------------------

以上是原来的分析~总感觉是有点问题,比如Math.round(-11.5345) == -12; 

参考JDK API 1.6 中讲解如下:

round

public static long round(double a)
返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值:

 

(long)Math.floor(a + 0.5d)

特殊情况如下:

  • 如果参数为 NaN,那么结果为 0。
  • 如果结果为负无穷大或任何小于等于 Long.MIN_VALUE 的值,那么结果等于 Long.MIN_VALUE 的值。
  • 如果参数为正无穷大或任何大于等于 Long.MAX_VALUE 的值,那么结果等于 Long.MAX_VALUE 的值。

 

参数:
a - 舍入为 long 的浮点值。
返回:
舍入为最接近的 long 值的参数值。

显然,这才是round真正的应用方法:

(long)Math.floor(a + 0.5d)

这样,就没有那么多的猜想与臆断,还得费神去记忆.

Math.round(11.5)=12         (long)Math.floor(11.5+0.5)=12
Math.round(-11.5)=-11  (long)Math.floor(-11.5+0.5)=-11

Math.round(11.5345)=12  (long)Math.floor(11.5345+0.5)=12   
Math.round(-11.5345)=-12 (long)Math.floor(-11.5345+0.5)=-12 

Math.round(11.46)=11  (long)Math.floor(11.46+0.5)=11
Math.round(-11.46)=-11  (long)Math.floor(-11.46+0.5)=-11

Math.round(11.68)=12  (long)Math.floor(11.68+0.5)=12 
Math.round(-11.68)=-12  (long)Math.floor(-11.68+0.5)=-12

.............

嘿嘿~API才是王道!(在设计上还是符合四舍五入-结果变大的原则,呵呵)

 

分享到:
评论

相关推荐

    java.lang.Math

    `java.lang.Math`是Java标准库中的一个核心类,它包含了一系列用于数学计算的静态方法。这个类提供了各种基本的数学运算,如平方根、指数、对数、三角函数等,以及随机数生成。在本篇文章中,我们将深入探讨`Math`类...

    java中math类的使用

    在Java编程语言中,`java.lang.Math`类提供了一系列用于执行基本数学运算的方法和常量。这个类包含静态方法和常量,使得开发者无需实例化对象即可直接调用其功能,极大地简化了数学计算的过程。 ### 常量 #### ...

    java中math类.docx

    `Math`类是Java标准库中的一个核心类,位于`java.lang`包下,无需导入即可直接使用。它提供了一系列静态方法来执行基本数学运算,如指数、对数、平方根、三角函数等。`Math`类中的所有方法均为静态方法,可以直接...

    java随机数

    Java提供两种主要的方式来生成随机数:`java.lang.Math.random()` 和 `java.util.Random` 类。这两种方法各有优劣,适用于不同的场景。 #### Math.random() `Math.random()` 是一个简单易用的方法,用于生成一个...

    Java常用包

    Java语言提供了多种常用包,包括java.lang、String、StringBuffer、Math、Object、Class、Constructor、Method、Field、Date、Calendar、SimpleDateFormat、File等。这些包中的类和方法为Java开发提供了强大的支持。...

    java中数学操作类的简介共5页.pdf.zip

    Java语言在处理数学运算时提供了丰富的工具类,主要集中在`java.lang.Math`和`java.util.Random`两个核心类中。本文将深入探讨这两个类的主要功能和使用方法。 首先,我们来看`java.lang.Math`类。这是一个包含基本...

    java类库和常用类简介-PPT.ppt

    `Math`类是`java.lang`包中的一个静态类,提供了丰富的数学运算功能。该类没有构造方法,所有的方法都是静态的,可以直接通过类名调用。 - **常量**:`Math.E`表示自然对数的底数e,`Math.PI`表示圆周率π。 - **...

    JAVA lang包PPT

    在Java编程语言中,`java.lang`包是一个基础包,它包含了所有Java程序都会自动导入的基本类和接口,包括一些核心的数据类型(如`String`和`Math`)的包装类。本篇PPT主要讲解了`java.lang`包中的核心概念,特别是`...

    Java SE编程入门教程 java Math(共11页).pptx

    Math类是Java.lang包的一部分,提供了许多静态方法,例如求绝对值、三角函数、指数和对数等。 Math类中有两个常量,E表示自然对数的底,约等于2.71828,PI是圆周率,大约为3.14159。这个类的所有方法都是静态的,...

    【Java编程教程】详解 Java Math 类.pdf

    在Java编程中,`Math`类是`java.lang`包下的一个核心类,它提供了大量的静态方法,用于执行各种数学运算。这个类的主要目的是提供精确的浮点数运算,以及处理一些基本的数学函数。在本教程中,我们将深入探讨`Math`...

    Java面试题1

    - **java.lang.Math**: 不能被继承 (F),提供了一系列数学运算的静态方法。 - **java.lang.Void**: 不能被继承 (F),表示无类型。 - **java.lang.Class**: 不能被继承 (F),提供了获取类的信息的方法。 - **java....

    Java Number & Math 类.docx

    Math 类位于`java.lang`包中,包含了许多静态方法,用于执行基本的数学运算。例如,求平方根、对数、指数、三角函数等。以下是一些常用的Math类方法: 1. **sin(double a)**:返回给定角度(弧度制)的正弦值。 2. ...

    浅谈Java中的几种随机数

    首先,最基本的随机数生成方式是使用java.lang.Math类提供的静态方法random()。这个方法会返回一个大于等于0.0且小于1.0的double类型的随机数。尽管这个方法非常简单易用,但它实际上并不直接生成随机数,而是返回一...

    Java岗面试核心MCA版.pdf

    3. Math.round()函数:Math.round()函数可以将浮点数四舍五入到最接近的整数。 4. 编码方案:Java语言采用Unicode编码方案,具有跨平台性。 5. 注释:Java注释用于解释说明程序的文字,分类有单行注释和多行注释...

    java中math类.pdf

    这个类位于`java.lang`包中,因此在使用时无需额外导入。下面将详细解释`Math`类中的一些主要方法: 1. `abs(arg)`: 这个方法接受一个数值类型的参数,返回其绝对值。例如,`Math.abs(-30.5)`将返回30.5,`Math.abs...

    JAVA计算器 不包含括号可运算乘除加减以及三角函数

    在Java编程语言中,开发一个简单的计算器程序是一个常见的学习任务,尤其对于初学者而言。这个“JAVA计算器”项目,根据标题和描述,似乎是一个能够执行基本数学运算(乘除加减)以及三角函数的计算器。这里我们将...

    2023年开发人员面试宝典Java版.docx

    Math.round() 是 Java 中的数学函数,用于将数字四舍五入。 1.13 构造器是否可以被重写 构造器不能被重写,因为构造器是对象的初始化方法。 1.14 抽象类和接口的区别 抽象类和接口都是 Java 中的抽象类型,但...

    浅谈java中的几种随机数

    首先,最基本的随机数生成方法是使用`java.lang.Math.random()`。这个静态方法返回一个介于0.0(包括)到1.0(不包括)之间的双精度浮点数。要生成指定范围内的随机数,通常会通过乘以一个适当的因素并调整范围。...

    JAVA如何使用Math类操作数据

    JAVA 语言中的 Math 类是一个基本的数学工具类,位于 java.lang 包中,提供了许多静态方法来执行基本的数学运算。这些方法可以帮助开发者快速地实现数学计算,提高开发效率。 在本文中,我们将通过实例代码来介绍...

Global site tag (gtag.js) - Google Analytics