我正在使用bigDecimal.js:
https://github.com/iriscouch/bigdecimal.js
在我的node.js项目服务器端没有任何问题,但是当我在客户端上尝试相同的操作时,我似乎无法正确引用bigDecimal对象。在 github 页面上有一个链接:
http://jhs.iriscouch.com/demo/_design/bigdecimal/_show/ui?e=321.4567890*123456789.123456789987654321
我的 html 中有一个指向 bigdecimal.js 的链接:
<script src="/javascripts/bigdecimal.js" type="text/javascript"></script>
脚本肯定在那里,因为我可以在 chrome 中导航到它。
我的代码如下所示:
var bd = {"BigDecimal":BigDecimal, "BigInteger":BigInteger, "RoundingMode":RoundingMode};
var bigDeletedVideoID = bd.BigInteger('9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999');
var bigLowNum = bd.BigInteger('1');
alert(bigDeletedVideoID.subtract(bigLowNum));
但是我在 chrome 中的第一行收到一个错误:
BigDecimal is not defined.
有人有使用 BigDecimal 的经验以及如何在 javascript Web 客户端上执行此操作吗?
更新:
我在本地主机上测试了代码,即引用 .js 库,如下所示:
http://localhost:11709/javascripts/bigdecimal.js
我收到正确显示的警报消息。
但是当我将网站上传到实时服务器时,它现在变成:
http://pazooza.azurewebsites.net/javascripts/bigdecimal.js
突然间我遇到了两个错误:
- 意外的标识符 bigdecimal.js 第 293 行
- BigDecimal 未定义
为什么它在本地主机上运行而不是在实时站点上运行???
最佳答案
来自:Load javascript via Firebug console
var script = document.createElement("script");
script.src = "http://pazooza.azurewebsites.net/javascripts/bigdecimal.js";
document.body.appendChild(script);
正如我在重写此答案之前所怀疑的那样,似乎没有任何命名空间冲突: 相反,在 js 页面加载之前,必须非常精确地不使用符号“BigDecimal”...
这通常由 onload 事件处理。
最初的建议是使用node.js框架或假设命名空间BD
根据https://github.com/iriscouch/bigdecimal.js的建议
var foo=require("bigdecimal.js"); var i = foo.BigDecimal("1235");
关于javascript - Web 客户端上的大十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757714/