java.lang.Math's floor(),ceil() and round()的区别:
Just 贴 JDK:
引用
public static double floor(double a)
Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer.
floor返回的是不大于(小于or等于)参数的最大整数的floating-point value表示。
public static double ceil(double a)
Returns the smallest (closest to negative infinity) double value that is greater than or equal to the argument and is equal to a mathematical integer.
ceil返回的是不小于(大于or等于)参数的最小整数的floating-point value表示。
public static long round(double a)
Returns the closest long to the argument. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type long. In other words, the result is equal to the value of the expression:
(long)Math.floor(a + 0.5d)
在做四舍五入运算时,我们可以使用round;但当参数为 -xxx.5 时,四舍五入后得到的结果不是我们期待的,解决办法是先对参数取绝对值,然后再用round方法
Sources:
http://blog.csdn.net/foart/archive/2009/06/24/4295645.aspx
使用BigDecimal做精确的数值计算:
Java精确计算 -
http://blog.csdn.net/xiaosu_521/article/details/2065854
关于round方法结合面试题再多说说:
Math.round(11.5) = 12
Math.round(-11.5) = -11
Math.round(-11.3) = -11
Math.round(-11.8) = -12
析:
引用
Math.round(11.5)
= (long)Math.floor(11.5 + 0.5)
= (long)Math.floor(12.0)
= (long)12.0
= 12
Math.round(-11.5)
= (long)Math.floor(-11.5 + 0.5)
= (long)Math.floor(-11.0)
= (long)-11.0
= -11
Math.round(-11.3)
= (long)Math.floor(-11.3 + 0.5)
= (long)Math.floor(-10.8)
= (long)-11.0
= -11
Math.round(-11.8)
= (long)Math.floor(-11.8 + 0.5)
= (long)Math.floor(-11.3)
= (long)-12.0
= -12
分享到:
相关推荐
以下是对"Java数值计算算法编程"这一主题的详细阐述。 一、Java基础与数值计算 在进行数值计算之前,我们需要对Java的基础语法有深入理解,包括变量、数据类型(如整型、浮点型、双精度型)、运算符(算术、比较、...
java 数值计算的工具包,NASA数值计算工程师写的书 Java Number Crunchyer里面的源代码,和jar包
这个“java数值计算算法示例程序”压缩包提供了丰富的代码示例,帮助开发者深入理解并掌握如何在Java中实现各种数值计算方法。 首先,我们要了解Java在数值计算中的基本概念。Java作为一种强大的面向对象的编程语言...
共有数值计算中常用的Java方法近200个.内容包括:解线性代数方程组、插值、数值积分、特殊函数、函数逼近、随机数、排序、特征值问题、数据拟合、方程求根和非线性方程组求解、函数的极值和最优化、数据的统计描述...
Java数值计算算法编程是计算机科学中的一个重要领域,它涉及到如何使用Java语言进行高效且精确的数学运算。在Java中,数值计算涵盖了广泛的算法和技术,包括基本的算术运算、复杂数学函数、线性代数、微积分、概率...
本资源"Java数值计算算法源代码"涵盖了复数运算、矩阵操作、线性方程组求解、非线性方程求解、插值法以及数值积分等多个关键领域,对于学习和实践Java数值计算具有很高的价值。 1. **复数运算**:复数是数学中的一...
### Java数值计算详解 #### 浮点环境与IEEE算法 Java数值计算中,浮点环境是理解数值运算的关键。在Sun Studio11中,数值计算的基石是基于IEEE算法模型,这一模型定义了浮点数的存储和运算规则。IEEE算法,即...
java 数值计算(英文版) chm文件
Java数值计算实验旨在提升编程者在算法和编程技术方面的技能,尤其关注数值处理。下面将逐一解析提供的实验题目,深入探讨相关知识点。 实验1:高斯消元法 这是一种求解线性方程组的经典算法,通过行变换将系数矩阵...
一个关于Java数值计算的开发包,内含SDKJar包,API文档,以及代码示例,涵盖小学,初中,高中,大学所有数学相关的数学逻辑运算。 此资源特别适合教育教辅行业的相关人员以及做教育系统的开发人员使用。也适合需要有...
数值计算中的全选主元,可以设置最小允许的主元。java编写
Java 语言提供了丰富的数学计算功能,主要集中在 `java.lang.Math` 类中。这个类包含了一系列的静态方法,用于处理各种数值运算,如算术运算、三角函数、对数和指数等。下面我们将详细讨论这些常用的方法。 1. **...
本实验课程基于Java编程语言,旨在帮助学生理解和掌握数值计算方法,并通过实践加深对理论知识的运用。 首先,数值计算涉及一系列算法,如线性代数中的求解线性方程组、数值微积分中的数值积分和微分、数值优化中的...
1. **线性代数运算**:Java中的`Apache Commons Math`库提供了矩阵和向量的操作,包括求解线性方程组、矩阵乘法、特征值和特征向量计算等。例如,使用`LUDecomposition`类可以对矩阵进行LU分解,进而求解线性方程组...
数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) ...
Java 数值计算库是计算机科学中的一个重要组成部分,特别是在处理数学问题和数据分析时。"nc.jar.zip_java 矩阵_java 计算_大数_大数计算 java_矩阵"这个标题和描述暗示了该压缩包可能包含一个Java库,专注于矩阵...
在Java编程环境中,我们可以利用牛顿插值来实现对函数的数值计算,并通过图形化展示来更好地理解和验证结果。以下是关于这个主题的详细知识点: 1. **牛顿插值法**: 牛顿插值法基于多项式插值理论,通过构造一个...
- **并行计算**:利用Java的多线程特性,提高数值计算的效率。 这些Java程序可能没有注释,但是通过代码结构、函数调用以及算法的常见模式,可以推断出它们的功能和用途。对于学习者来说,这提供了一个很好的实践...