匹配最多8个小数位的值

时间:2014-09-15 18:04:21

标签: java eclipse math

我有价值/费率。我需要它匹配到8位小数。

我不想使用正则表达式。

还有其他办法吗?

我尝试在网上找到很多,但无法弄明白。

提前致谢

样本输入65.2341234567

我只需要将它与最多8位小数的值进行比较。即64.23412345。

2 个答案:

答案 0 :(得分:2)

import java.math.BigDecimal;

public class Compare {

    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("65.2341234567").setScale(8, BigDecimal.ROUND_FLOOR);
        BigDecimal bd2 = new BigDecimal("65.234123456799").setScale(8, BigDecimal.ROUND_FLOOR);

        System.out.println( "equals " + bd1.equals(bd2));
    }
}

答案 1 :(得分:0)

由于机器精度不可预测,您无法始终在此精度范围内与标准数据类型进行比较。

我认为在一个范围内比较标记“丢失”精度的epsilon值会更明智。

值<值厄普西隆 和 值>值+ epsilon

让epsilon足够小,如0.002

例如。

我希望这会有所帮助。