我试过以下选项。
BigDecimal expectedAmount = BigDecimal.valueOf(3000.00);
和
BigDecimal expectedAmount = BigDecimal.valueOf(3000);
和
BigDecimal expectedAmount = new BigDecimal(3000.00);
和
BigDecimal expectedAmount = new BigDecimal(3000);
所有这些都存储了3000.0,但我想为我的junit测试存储3000.00。不知道怎么做。
答案 0 :(得分:3)
还有两个选择:
BigDecimal expectedAmount1 = new BigDecimal(3000).setScale(2);
BigDecimal expectedAmount2 = BigDecimal.valueOf(300000L, 2);
第一个仅适用于整数金额。 .setScale(2)
然后只是"在小数点后面加两个零"。第二个需要重新缩放的值(例如,如果要表示美元,则为整数分数),并声明小数点应放在末尾两位数。
两个版本都不需要字符串表示,这可能是一个非常好的性能。
答案 1 :(得分:1)
您应使用constructor接受String val作为:
BigDecimal expectedAmount = new BigDecimal("3000.00");