- 浏览: 116756 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
ccfangle:
bestchenwu 写道什么时候用“==”还是“equals ...
操作符“==”与对象的equals()方法 -
bestchenwu:
什么时候用“==”还是“equals()”,跟你是把这个对象作 ...
操作符“==”与对象的equals()方法
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才是王道!(在设计上还是符合四舍五入-结果变大的原则,呵呵)
发表评论
-
iText watermark(pdf 新增水印,有一页总是新增不了)
2015-10-21 12:11 1029pdf 新增水印,有个总是新增不了:水印能选中,但是就是不 ... -
JDBC userenv('LANG')
2015-08-25 15:51 1444select userenv('LANGUAGE') ,us ... -
回调函数理解
2013-05-17 17:07 1066http://www.cnblogs.com/wangche ... -
JAVA5线程并发库[8]-Exchanger(转)
2011-12-21 10:18 996用于实现两个线程之间的数据交换,每个人在完成一定的事务 ... -
Annotation 的作用
2011-12-05 15:51 1240JDK1.5开始,Java中增加了对元数据(Meta ... -
Java 泛型参数类型理解
2011-11-19 16:03 8893<1>泛型参数类型限制 (1) ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 12 Error Handing With Exceptions
2011-11-03 21:37 3049// exceptions/Ex1.java// TIJ4 ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 11 Holding Your Object
2011-10-30 20:02 2015// holding/Ex1.java// TIJ4 Ch ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 10 Inner Classes
2011-10-21 13:56 1888// innerclasses/Outer1.java// T ... -
java中怎样反向显示字符串(包含实际开发中的例子),有很多地方值得借鉴
2011-10-16 20:16 1821链接地址:http://blog.csdn.net/zha ... -
访问控制作用
2011-10-07 16:55 1017进来学习 《Think in Java》很多Java的思想观点 ... -
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出......
2011-08-02 11:16 2013写一个方法,输入一个文 ... -
Java Socket编程的详细介绍-2
2011-07-29 10:36 1008客户机代码: import java.net.*; i ... -
Java Socket编程的详细介绍-1
2011-07-29 10:33 845事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程 ... -
操作符“==”与对象的equals()方法
2011-07-27 14:52 1300很多时候都会用到类型或者是对象是否相等的比较应用,需要 ... -
Java反射机制
2011-07-21 11:00 803Java提供了一套机制来动态执行方法和构造方法,以及 ... -
Error与Exception有什么区别?
2011-07-20 23:26 2585Error(错误)表示系统级的错误和程序不必处理的异 ... -
StringBuffer与StringBuilder
2011-06-24 11:38 868<1>StringBuffer 线程安全的可变 ...
相关推荐
`java.lang.Math`是Java标准库中的一个核心类,它包含了一系列用于数学计算的静态方法。这个类提供了各种基本的数学运算,如平方根、指数、对数、三角函数等,以及随机数生成。在本篇文章中,我们将深入探讨`Math`类...
在Java编程语言中,`java.lang.Math`类提供了一系列用于执行基本数学运算的方法和常量。这个类包含静态方法和常量,使得开发者无需实例化对象即可直接调用其功能,极大地简化了数学计算的过程。 ### 常量 #### ...
`Math`类是Java标准库中的一个核心类,位于`java.lang`包下,无需导入即可直接使用。它提供了一系列静态方法来执行基本数学运算,如指数、对数、平方根、三角函数等。`Math`类中的所有方法均为静态方法,可以直接...
Java提供两种主要的方式来生成随机数:`java.lang.Math.random()` 和 `java.util.Random` 类。这两种方法各有优劣,适用于不同的场景。 #### Math.random() `Math.random()` 是一个简单易用的方法,用于生成一个...
Java语言提供了多种常用包,包括java.lang、String、StringBuffer、Math、Object、Class、Constructor、Method、Field、Date、Calendar、SimpleDateFormat、File等。这些包中的类和方法为Java开发提供了强大的支持。...
Java语言在处理数学运算时提供了丰富的工具类,主要集中在`java.lang.Math`和`java.util.Random`两个核心类中。本文将深入探讨这两个类的主要功能和使用方法。 首先,我们来看`java.lang.Math`类。这是一个包含基本...
`Math`类是`java.lang`包中的一个静态类,提供了丰富的数学运算功能。该类没有构造方法,所有的方法都是静态的,可以直接通过类名调用。 - **常量**:`Math.E`表示自然对数的底数e,`Math.PI`表示圆周率π。 - **...
在Java编程语言中,`java.lang`包是一个基础包,它包含了所有Java程序都会自动导入的基本类和接口,包括一些核心的数据类型(如`String`和`Math`)的包装类。本篇PPT主要讲解了`java.lang`包中的核心概念,特别是`...
Math类是Java.lang包的一部分,提供了许多静态方法,例如求绝对值、三角函数、指数和对数等。 Math类中有两个常量,E表示自然对数的底,约等于2.71828,PI是圆周率,大约为3.14159。这个类的所有方法都是静态的,...
在Java编程中,`Math`类是`java.lang`包下的一个核心类,它提供了大量的静态方法,用于执行各种数学运算。这个类的主要目的是提供精确的浮点数运算,以及处理一些基本的数学函数。在本教程中,我们将深入探讨`Math`...
- **java.lang.Math**: 不能被继承 (F),提供了一系列数学运算的静态方法。 - **java.lang.Void**: 不能被继承 (F),表示无类型。 - **java.lang.Class**: 不能被继承 (F),提供了获取类的信息的方法。 - **java....
Math 类位于`java.lang`包中,包含了许多静态方法,用于执行基本的数学运算。例如,求平方根、对数、指数、三角函数等。以下是一些常用的Math类方法: 1. **sin(double a)**:返回给定角度(弧度制)的正弦值。 2. ...
首先,最基本的随机数生成方式是使用java.lang.Math类提供的静态方法random()。这个方法会返回一个大于等于0.0且小于1.0的double类型的随机数。尽管这个方法非常简单易用,但它实际上并不直接生成随机数,而是返回一...
3. Math.round()函数:Math.round()函数可以将浮点数四舍五入到最接近的整数。 4. 编码方案:Java语言采用Unicode编码方案,具有跨平台性。 5. 注释:Java注释用于解释说明程序的文字,分类有单行注释和多行注释...
这个类位于`java.lang`包中,因此在使用时无需额外导入。下面将详细解释`Math`类中的一些主要方法: 1. `abs(arg)`: 这个方法接受一个数值类型的参数,返回其绝对值。例如,`Math.abs(-30.5)`将返回30.5,`Math.abs...
在Java编程语言中,开发一个简单的计算器程序是一个常见的学习任务,尤其对于初学者而言。这个“JAVA计算器”项目,根据标题和描述,似乎是一个能够执行基本数学运算(乘除加减)以及三角函数的计算器。这里我们将...
Math.round() 是 Java 中的数学函数,用于将数字四舍五入。 1.13 构造器是否可以被重写 构造器不能被重写,因为构造器是对象的初始化方法。 1.14 抽象类和接口的区别 抽象类和接口都是 Java 中的抽象类型,但...
首先,最基本的随机数生成方法是使用`java.lang.Math.random()`。这个静态方法返回一个介于0.0(包括)到1.0(不包括)之间的双精度浮点数。要生成指定范围内的随机数,通常会通过乘以一个适当的因素并调整范围。...
JAVA 语言中的 Math 类是一个基本的数学工具类,位于 java.lang 包中,提供了许多静态方法来执行基本的数学运算。这些方法可以帮助开发者快速地实现数学计算,提高开发效率。 在本文中,我们将通过实例代码来介绍...