我正在用丹尼尔·特雷比安的JavaScript BigDecimal库编写测试用例(特别是BigDecimal-alllast.min.js),如果不抛出错误" MathContext ()坏表单值“,我似乎无法在divide方法中使用MathContext对象。
因为这个库是来自Java的直接端口,所以我使用的是这份文件。由于“表单”(参数#2)和“舍入模式”(参数#4)都只是常量,我不明白为什么要得到“坏的表单值”错误。我的Webstorm可以很好地看到常量,所以我知道它们就在那里。将“表单”常量更改为“工程”或任何其他常量并不能解决这一问题。
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对象的多次重复使用对于一个小型JavaScript项目来说是理想的,因此也是这里的重点。
**
发布于 2014-07-16 11:04:54
您的代码中有一个小错误。PLAIN常量实际上是在MathContext中定义的,所以第一行应该是:
var mc = new MathContext(3, MathContext.PLAIN, false, BigDecimal.ROUND_HALF_EVEN);使用此修补程序,"0.286“将按预期记录到控制台。
https://stackoverflow.com/questions/24719898
复制相似问题