Java 编程中的数值处理、图形应用及相关算法
1. Java 数值比较
1.1 特殊数值比较
在 Java 中,使用不同的方法比较特殊数值会有不同的结果:
- 使用 ==
比较 0
和 -0
时,结果为相等。
- 使用 equals()
比较 0
和 -0
时,结果为不相等。
- 使用 equals()
比较两个 NaN
(非数字)时,结果为相等。
1.2 加权比较
对于原始浮点类型或 Double
、 Float
类的浮点对象的有效数值(非 NaN
或无穷大),Java 的比较在两个值逐位相同时返回 true
。但在工程或科学应用中,不同的计算路径可能导致小的差异,因此需要判断两个值是否在预定程度上近似相等。可以使用希腊字母 ε(epsilon)来表示一个小的容差,通过重载 equals()
方法实现加权比较。示例代码如下:
final static double EPSILON = 1.0E - 12;
// Method overloading equals()
public static boolean equals(double v1, double