gpt4 book ai didi

javascript - 使用 Decimal 库而不是 IEEE 754 数学的编译为 JavaScript 选项?

转载 作者:行者123 更新时间:2023-12-02 16:26:05 24 4
gpt4 key购买 nike

在 JavaScript 中 0.1 + 0.2 = 0.30000000000000004Is floating point math broken?解释原因是因为 IEEE 754数学。我正在处理财务/会计领域的应用程序,并且想要一种方法来使 0.1 + 0.2 = 0.3

因此,我正在寻找一种解决方案,该解决方案可以采用类似于以下示例的代码,并带有 Decimal 的类型注释(使用 TypeScript 语法)。

var a:Decimal, b:Decimal, c:Decimal;

a = 0.1;
b = 0.2;

c = a + b;

编译/宏扩展过程可以输出使用 JavaScript Decimal 库的代码(例如 decimal.js ),因此 c = 0.3 而不是 0.30000000000000004

>
var a, b, c;

a = new Decimal(0.1);
b = new Decimal(0.2);

c = a.plus(b);
<小时/>

Mozilla sweet.js宏似乎支持custom operators其中“让您定义自己的运算符或覆盖内置运算符。”

问题:sweet.js 可以实现这种行为吗?有类似的例子吗?

<小时/>

TypeScript 转换源代码,这个概念之前已经有人用 TypeScript 询问过:

问题:TypeScript 编译器可以扩展以支持此用例吗?这适合功能请求吗?

<小时/>

此外,一个 blog post在关于将 ActionScript 交叉编译为 JavaScript 的系列中,出于一致性原因,他们希望“ActionScript 和 JavaScript 中出现相同的错误结果”,但这并没有假设额外的类型注释。

问题:是否有其他策略或编译为 JavaScript 选项来实现此目标?

最佳答案

Is there a compile-to-JavaScript solution that does this today

值得一提的是,Google 的 Dart 确实支持运算符覆盖并且具有可选类型注释:https://www.dartlang.org/

运算符覆盖:https://www.dartlang.org/articles/idiomatic-dart/#operators可选类型:https://www.dartlang.org/articles/optional-types/

关于javascript - 使用 Decimal 库而不是 IEEE 754 数学的编译为 JavaScript 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com