我有一个BigDecimal列表,它们具有不同的格式(1,900.4500
或69.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)