double a = 0.001;
double b = 0.0011;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2)
非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型!
public int compareTo(BigDecimal val)
- 将此 BigDecimal 与指定的BigDecimal 比较。根据此方法,值相等但具有不同标度的两个BigDecimal 对象(如,2.0 和 2.00)被认为是相等的。相对六个 boolean 比较运算符 (<, ==, >, >=, !=, <=) 中每一个运算符的各个方法,优先提供此方法。建议使用以下语句执行上述比较:(x.compareTo(y) <op>0),其中 <op> 是六个比较运算符之一。
-
-
指定者:
-
接口
Comparable<BigDecimal>
中的compareTo
-
接口
-
-
参数:
-
val
- 将此BigDecimal 与之比较的BigDecimal。
返回:
-
当此 BigDecimal 在数字上小于、等于或大于val 时,返回 -1、0 或 1。
//--------------------------------------------------------------------------------------------------------------------------------------------
-
-
非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型,具体BigDecimal的详细说明参考jdk开发帮助文档。
- import java.math.BigDecimal;
- public class DoubleCompare {
- public String compare(BigDecimal val1, BigDecimal val2) {
- String result = "";
- if (val1.compareTo(val2) < 0) {
- result = "第二位数大!";
- }
- if (val1.compareTo(val2) == 0) {
- result = "两位数一样大!";
- }
- if (val1.compareTo(val2) > 0) {
- result = "第一位数大!";
- }
- return result;
- }
- public static void main(String[] args) {
- double a = 0.01;
- double b = 0.001;
- BigDecimal data1 = new BigDecimal(a);
- BigDecimal data2 = new BigDecimal(b);
- System.out.print(new DoubleCompare().compare(data1, data2));
- }
- }