需求:WMS有两种规则的包装单位,一级包装(小单位),二级包装(大单位),例如比列关系1箱牛奶=12盒牛奶。 展示包装数量时,需要进行包装单位换算,一级包装单位换成二级单位,当能换成二级单位时(大),则显示二级单位,否则显示一级单位(小)。 如果库存数量是120盒牛奶,直接显示10箱; 如果库存数量是100盒牛奶,直接显示100盒。
包装数量使用BigDecimal类型的变量存放,这里就用到了BigDecimal整除判断。
BigDecimal totalA = BigDecimal.ZERO;
BigDecimal totalB = new BigDecimal("100");//B的数量
BigDecimal relationship = new BigDecimal(""20); //比例关系 1A=20B
BigDecimal number = totalB.divide(relationship, 10, BigDecimal.ROUND_HALF_DOWN); //倍数
//判断是否能整除
if(new BigDecimal(number.intValue()).compareTo(number) == 0) {
totalA = totalB.divide(relationship);
}
相关知识点,关于BigDecimal 计算。
public static void bigDecimalTest() {
BigDecimal num1 = new BigDecimal("0.05");
BigDecimal