gpt4 book ai didi

javascript - 在 Javascript 中将 Math.exp() 与 BigDecimal 一起用于大型 float

转载 作者:行者123 更新时间:2023-11-29 09:58:14 30 4
gpt4 key购买 nike

我正在尝试用 Javascript 执行以下计算:

e^x / (1 + e^x)

其中 x 是一个长 float 。

在这种情况下,我要求至少精确到小数点后 10 位。

我一直在使用 BigDecimal准确处理 float ,如 The Floating Point Guide 中的建议.

我的第一次尝试:

var foo = new BigDecimal(myVeryLongFloatingPoint)
var bar = Math.exp(foo);
var spam = bar.divide(bar.add(new BigDecimal("1")));

导致错误(其中xxxxx是 float ):

TypeError: Object xxxxx has no method 'add'

所以我尝试将 bar 转换为 BigDecimal 对象:

var foo = new BigDecimal(myVeryLongFloatingPoint)
var bar = new BigDecimal(Math.exp(foo));
var spam = bar.divide(bar.add(new BigDecimal("1")));

这又会导致错误(其中 xxxxx 是 float ):

BigDecimal(): Not a number: xxxxx

我哪里错了?

这是处理这种需要高精度的浮点计算的明智方法吗?

最佳答案

您应该将字符串传递给 BigDecimal:

var bar = new BigDecimal(Math.exp(foo).toString());

关于javascript - 在 Javascript 中将 Math.exp() 与 BigDecimal 一起用于大型 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487844/

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