提问人:user2640145 提问时间:8/22/2023 最后编辑:jonrsharpeuser2640145 更新时间:8/23/2023 访问量:69
在 JavaScript 中将浮点数与 BigInt 相乘?[复制]
Multiplying float with BigInt in JavaScript? [duplicate]
问:
例如,我可以计算
x = 0.28
y = 1e18
x * y = 280,000,000,000,000,000
我怎样才能在 javascript 中做到这一点,而 x 可以是任何数字,包括 ints,而 y 可以是任何其他大数字,如 1e12 或其他任何数字。
答:
1赞
Barmar
8/22/2023
#1
不能在计算中将 BigInt 与其他类型的混合,因此需要将 BigInt 用于所有操作数。
因此,不要将浮点数乘以 ,而是乘以 并除以 。0.28
28n
100n
console.log((BigInt(1e18) * 28n) / 100n)
评论
0赞
user2640145
8/23/2023
正如我所说,这些数字在运行时可能是未知的
0赞
Barmar
8/23/2023
您需要要求以此表单提供输入。如果 0.28 代表百分比,请询问百分比而不是分数,因此他们输入并在代码中除以 100。28
0赞
Barmar
8/23/2023
或者计算小数点后的位数,然后按比例放大。如果输入 ,则用于转换它,然后除以 。.285
BigInt(Math.round(input*1000))
1000n
评论
BigInt
不能与其他类型混合使用。您期望的结果是什么?