我正在使用JavaScript BigDecimal library by Daniel Trebbien(特别是 BigDecimal-all-last.min.js )编写测试用例,我似乎无法在divide方法中使用MathContext对象没有抛出错误“MathContext()错误的表单值”
由于这个库是Java的直接端口,我使用的是this documentation。由于“表单”(参数#2)和“舍入模式”(参数#4)都只是常量,我不明白为什么我会收到“错误的表单值”错误。我的Webstorm IDE看到常量很好,所以我知道它们在那里。将“形式”常量更改为“工程”或任何其他常量并不能解决问题。
var mc = new MathContext(3, BigDecimal.PLAIN, false, BigDecimal.ROUND_HALF_EVEN);
var two = new BigDecimal("2");
var seven = new BigDecimal("7");
var twoSevenths = two.divide(seven, mc); // constructor divide(BigDecimal, MathContext)
console.log(twoSevenths.toString()); // expecting 0.286
你看到我做错了吗?
**
当然还有其他可以使用的除法构造函数,但是单个MathContext对象的多次重用对于Tiny JavaScript项目来说是理想的,因此是这里的重点。
**
答案 0 :(得分:1)
您的代码中有一个小错字。 PLAIN
常量实际上是在MathContext
中定义的,因此第一行应该是:
var mc = new MathContext(3, MathContext.PLAIN, false, BigDecimal.ROUND_HALF_EVEN);
通过此修复," 0.286"按预期记录到控制台。