与int比较的BigDecimals列表中的每个项



我有一个BigDecimal列表,它们具有不同的格式(1,900.450069.4444(,我必须将它们与其他值进行比较。

public boolean abc(int value) {
..
List<BigDecimals> list = getListOfBD(); //it returns values from the table exact as they are
return list.stream().allMatch(val -> val.intValue() == value)
// or
return list.stream().allMatch(val -> val.intValue() == value)
}

问题是,我需要将value(它将始终是相同的格式,无论它是int还是其他类型——它必须始终是一种类型(与列表中的不同类型进行比较。如何做到这一点?intValue()不会做这项工作,因为它简化了数字,并且结果不可靠。我需要将value==>val进行比较,所以我需要包括每个小数点。数字是可以解析的,我不介意。

首先将值转换为BigDecimal,然后使用compareTo

BigDecimal a = BigDecimal.valueOf( value )
a.compareTo(val)

最新更新