gpt4 book ai didi

javascript - 在莲花脚本中执行 22 位数字的除法

转载 作者:行者123 更新时间:2023-11-30 07:10:06 25 4
gpt4 key购买 nike

我想对 22 位数字进行除法。在莲花脚本中。

谁能告诉我怎么做?我没有得到正确的结果。

例如;

将数字调暗为 Double;

将 num1 调暗为 Double;

num=123456789989898976765;

num1 = num/97;

但我在 num1 中没有得到正确的结果。

最佳答案

为了让我这个数学家满意,我必须告诉你,你永远不会得到“正确”的答案,除法会产生一个有无限小数的数字,但我明白你想要的,我思考。您想要的号码是:

1 272 750 412 266 999 760.463 917 525 ...

但是您得到的数字是:

1 272 750 412 266 999 800

这是由于该语言使用的数字格式不够精确。进行除法时不会发生精度损失,一旦将常量分配给变量,精度损失就会比这快得多。您想要存储的号码是:

123 456 789 989 898 976 765

但是您实际存储的数字是:

123 456 789 989 898 980 000

这就是导致错误答案的原因。

由于我不知道 Lotus Script 环境,我会做两件事;首先,给你一些代码来解决这个特定问题,如下所示:

var num = [12345678998, 9898976765];
var num1 = num[0] / 97;
var num2 = Math.floor(num1);
num2 = num1 - num2;
num2 *= 97;
num2 = Math.round(num2)
num2 *= Math.pow(10, num[1].toString().length);
num2 = (num2 + num[1]) / 97;
alert(Math.floor(num1).toString() + num2.toString());

然后您可以对其进行概括以满足您的需求。此代码将除法分成数字存储格式 CAN 处理的两个较小的除法,并将第一个除法的剩余部分添加到第二个除法,产生以下结果:

1 272 750 412 266 999 760.463 917 7

这并不准确,但可能足够接近,对吧?如何在不失去精度的情况下将较大的数字拆分成片段,这取决于你们两个。 (提示:使用字符串)

其次,我将向您介绍 BigInt.js,这是一个用于在 JavaScript 中使用任意大整数进行数学计算的库。如果您可以将此库包含到您的代码中,那绝对是更经济的方式。

我希望其中之一能有所帮助。

关于javascript - 在莲花脚本中执行 22 位数字的除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636570/

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