Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将BigInteger提升为负数_C# - Fatal编程技术网

C# 将BigInteger提升为负数

C# 将BigInteger提升为负数,c#,C#,我有以下代码: System.Numerics.BigInteger k = SomeBigInteger(); System.Numerics.BigInteger M; M = System.Numerics.BigInteger.Pow(k,-1); Response.Write(+M); 但是,这会产生错误: 数字必须大于或等于零。参数名称:指数 如何将biginger提升为负数?将k提升为-1次幂将导致1/k,只有当k为1时,它才是整数。当k大于1时,结果将不是整数,这就是big

我有以下代码:

System.Numerics.BigInteger k = SomeBigInteger();
System.Numerics.BigInteger M;
M = System.Numerics.BigInteger.Pow(k,-1); 
Response.Write(+M); 
但是,这会产生错误:

数字必须大于或等于零。参数名称:指数



如何将
biginger
提升为负数?

k
提升为
-1
次幂将导致
1/k
,只有当
k
为1时,它才是整数。当
k
大于1时,结果将不是整数,这就是
biginger.Pow()
不支持提升到负幂的原因。

k
提升到
-1
次幂将导致
1/k
,只有当
k
为1时,它才会是整数。当
k
大于1时,结果将不是整数,这就是为什么
biginger.Pow()
不支持提升为负幂。

显然,这种操作的结果仅在非常特殊的情况下才会保持整数。你理解负幂的数学意义吗?负幂本质上不是一个分数吗。如果需要用整数表示,您希望答案是什么?您必须先转换为另一种可以处理分数的类型,如十进制、双精度或浮点。我如何处理分数?@DanKaufman现在还不清楚
biginger.Pow()
是否必须返回整数。例如,它可以返回任意大(在本例中为小)的float/double。就我个人而言,我希望它返回与
1/k
类似的内容,而不是抛出错误。显然,这种操作的结果只在非常特殊的情况下保持整数。你理解负幂的数学意义吗?负幂本质上不是一个分数吗。如果需要用整数表示,您希望答案是什么?您必须先转换为另一种可以处理分数的类型,如十进制、双精度或浮点。我如何处理分数?@DanKaufman现在还不清楚
biginger.Pow()
是否必须返回整数。例如,它可以返回任意大(在本例中为小)的float/double。就个人而言,我希望它返回与
1/k
类似的内容,而不是抛出错误。如果
k
为-1;,它也是一个整数。)@juharr touché:)这并不是真正的答案,而是图书馆不支持它。在这种情况下,
biginger.Pow()
确实返回一个
biginger
,但也不可能返回任意小的浮点/双精度。它可能可以使用
biginger.DivRem()
来解决,这取决于操作的大小
k
island me put k=51。。。。好的,那么BigInteger.DivRem(51,-1)或DivRem(1,51)或什么?如果
k
是-1;,它也是一个整数。)@juharr touché:)这并不是真正的答案,而是图书馆不支持它。在这种情况下,
biginger.Pow()
确实返回一个
biginger
,但也不可能返回任意小的浮点/双精度。它可能可以使用
biginger.DivRem()
来解决,这取决于操作的大小
k
island me put k=51。。。。好的,那么大整数。DivRem(51,-1)或DivRem(1,51)或什么?