首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MathContext对象在BigDecimal除法中的应用

MathContext对象在BigDecimal除法中的应用
EN

Stack Overflow用户
提问于 2014-07-13 05:41:40
回答 1查看 390关注 0票数 1

我正在用丹尼尔·特雷比安的JavaScript BigDecimal库编写测试用例(特别是BigDecimal-alllast.min.js),如果不抛出错误" MathContext ()坏表单值“,我似乎无法在divide方法中使用MathContext对象。

因为这个库是来自Java的直接端口,所以我使用的是这份文件。由于“表单”(参数#2)和“舍入模式”(参数#4)都只是常量,我不明白为什么要得到“坏的表单值”错误。我的Webstorm可以很好地看到常量,所以我知道它们就在那里。将“表单”常量更改为“工程”或任何其他常量并不能解决这一问题。

代码语言:javascript
复制
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项目来说是理想的,因此也是这里的重点。

**

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-16 11:04:54

您的代码中有一个小错误。PLAIN常量实际上是在MathContext中定义的,所以第一行应该是:

代码语言:javascript
复制
var mc = new MathContext(3, MathContext.PLAIN, false, BigDecimal.ROUND_HALF_EVEN);

使用此修补程序,"0.286“将按预期记录到控制台。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24719898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档