Powershell 为大的 bigint 数字计算不正确的值

Powershell calculating incorrect value for large bigint numbers

[bigint][math]::pow(10,22) 

给出正确的结果:10000000000000000000000

[bigint][math]::pow(10,23) 

给出错误结果:100000000000000008388608

[bigint]10e23

给出了不同但也不正确的结果:999999999999999983222784

我认为 System.Numerics.biginteger 适用于任意大的整数?

在 Powershell 中正确计算任意大的数字是否需要做一些特殊的事情,或者必须改用其他方法?

pow 函数接受 double 类型参数,returns double 类型结果。您的 int 输入隐式转换为 double,并且 double 结果尽可能转换为 bigint。

Math.Pow Method documentation

另请参阅对 similar thing reported as bug 的回复。在该错误报告中,他们提出了一个函数定义(包括代码),该定义将计算大整数值的 pow。