[bigint][math]::pow(10,22)
给出正确的结果:10000000000000000000000
[bigint][math]::pow(10,23)
结果不正确:100000000000000008388608
[bigint]10e23
给出不同但也不正确的结果:999999999999999983222784
我认为System.Numerics.biginteger适用于任意大整数?
在Powershell中是否需要做一些特殊的事情才能正确计算任意大数,或者必须使用另一种方法?
答案 0 :(得分:1)
pow函数采用double类型参数,并返回double类型的结果。你的int输入被隐式地转换为double,而double结果最好被转换为bigint。
另见similar thing reported as bug的回复。在该bug报告中,他们建议一个函数定义(包括代码),它将为大整数值计算pow。