为了账号安全,请及时绑定邮箱和手机立即绑定

Excel 公式到 javascript

Excel 公式到 javascript

米脂 2023-03-18 17:55:06
我试图在我的 javascript 代码中使用 excel 公式,但无法获得正确的结果,这是 excel 中的公式:(C4-(C8/C6))*(1-((1+(C5/12))^-C6))/(C5/12)+C8+C7以及我如何在 javascript 中尝试它:(737-(50000/300))*(1-(Math.pow((1+(0.02/12)),-300)))/(0.02/12)+50000+10000或者(737-(50000/300))*(1-((1+(0.02/12))**-300))/(0.02/12)+50000+10000两次尝试都给我相同的结果,但这个结果与 excel 中的结果不同,知道吗?Javascript 给我 194558.80507389922 但 excel 给我 191516,666
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

当我自己在 Excel 中尝试时,公式生成194559,8051(与 JS 相同)。

当我将 C5 从 更改0,020,022然后公式生成191516,666(与您的 Excel 相同)。

结论 -> 你的 C5 实际上是0,022,或者非常接近它。请确保您的单元格设置为根据需要显示尽可能多的小数以避免仅显示舍入。


查看完整回答
反对 回复 2023-03-18
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

4 位小数的相同结果我的 Excel 使用默认值四舍五入,相同的结果为 7 位小数

注意:浮点数学是否损坏?

const C4 = 737;

const C5 = 0.02;

const C6 = 300;

const C7 = 10000;

const C8 = 50000;


// (C4-(C8/C6))*(1-((1+(C5/12))^-C6))/(C5/12)+C8+C7         = 194558,8051 in my Office 365 Excel

                                                           // 194558,805073901 - with 9 decimals

console.log(

(C4-(C8/C6))*(1-(Math.pow((1+(C5/12)),-C6)))/(C5/12)+C8+C7 // 194558.80507389922

)


console.log(

(C4-(C8/C6))*(1-((1+(C5/12))**-C6))/(C5/12)+C8+C7          // 194558.80507389922

)


查看完整回答
反对 回复 2023-03-18
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信