【发布时间】:2021-03-23 10:54:52
【问题描述】:
我在社交媒体上看到了这个有趣的小命令,它将 pi 输出到小数点后 10000 位。我想知道与此等效的 Windows Powershell 是什么?
echo "scale=10000; 4*a(1)" | bc -l
我知道我可以使用Powershell Math library 来做基本的数学公式,但是如何将小数位数设置为 10000?
PS C:\Users\Me> [Math]::Atan(1)*4
3.14159265358979
【问题讨论】:
-
.NET 中没有用于此的本机功能。 .NET 没有内置任意精度的数值库,因此 PowerShell 也没有。对于整数计算,有
BigInteger,但不能用于像这样的浮点计算。您可以为 .NET 查找任意精度的数值库并在 PowerShell 中使用这些库,或者只安装并调用bc(它是一个单独的可执行文件,而不是内置命令)。 -
有一个DECIMAL type in .NET,但这仅对96位精度有用,而且您似乎无法在其上使用[Math]::三角函数。
-
当然,只要您不介意作弊,原生等效项可以是
(Invoke-WebRequest https://www.pi2e.ch/blog/wp-content/uploads/2017/03/pi_dec_1m.txt).Content | Select -First 10001。你可以请求更多的数字,它比bc快得多。 :-P
标签: powershell math decimal precision