如何在 Bigdecimal 中存储 3000.00
How to store 3000.00 in Bigdecimal
我尝试了以下选项。
BigDecimal expectedAmount = BigDecimal.valueOf(3000.00);
和
BigDecimal expectedAmount = BigDecimal.valueOf(3000);
和
BigDecimal expectedAmount = new BigDecimal(3000.00);
和
BigDecimal expectedAmount = new BigDecimal(3000);
它们都存储 3000.0,但我想存储 3000.00 用于我的 junit 测试。不知道该怎么做。
您应使用 constructor 接受字符串 val 作为:
BigDecimal expectedAmount = new BigDecimal("3000.00");
还有两个选项:
BigDecimal expectedAmount1 = new BigDecimal(3000).setScale(2);
BigDecimal expectedAmount2 = BigDecimal.valueOf(300000L, 2);
第一个仅适用于整数金额。 .setScale(2)
然后只是 "adds two zeroes after the decimal point"。第二个需要一个重新缩放的值(例如,如果你想表示美元,则为整数分),并声明小数点要放在末尾左边两位数。
两个版本都不需要字符串表示,这在性能上具有很大优势。
我尝试了以下选项。
BigDecimal expectedAmount = BigDecimal.valueOf(3000.00);
和
BigDecimal expectedAmount = BigDecimal.valueOf(3000);
和
BigDecimal expectedAmount = new BigDecimal(3000.00);
和
BigDecimal expectedAmount = new BigDecimal(3000);
它们都存储 3000.0,但我想存储 3000.00 用于我的 junit 测试。不知道该怎么做。
您应使用 constructor 接受字符串 val 作为:
BigDecimal expectedAmount = new BigDecimal("3000.00");
还有两个选项:
BigDecimal expectedAmount1 = new BigDecimal(3000).setScale(2);
BigDecimal expectedAmount2 = BigDecimal.valueOf(300000L, 2);
第一个仅适用于整数金额。 .setScale(2)
然后只是 "adds two zeroes after the decimal point"。第二个需要一个重新缩放的值(例如,如果你想表示美元,则为整数分),并声明小数点要放在末尾左边两位数。
两个版本都不需要字符串表示,这在性能上具有很大优势。