您可以改为乘以115,然后除以100。
,
我们可以看到here,BigInteger.Pow()接受一个BigInteger,后跟一个常规的Base 32整数。因此,如果您只是要使用双精度数,那么我不明白为什么要使用BigInteger.Pow()函数。
由于我们知道乘数是double,而buyableObjects [index-1] .indexMultiplier是整数,
我宁愿做
double finalMultiplier = Math.Pow(multiplier,buyableObjects[index-1].indexMultiplier);
然后,您只需要面对将BigInteger乘以两倍的问题,可以通过将其分解为乘法和除法来解决。
例如,finalMultiplier = 2.27;由于我们不确定finalMultiplier将有多少小数位,因此您可能必须在这一点上进行四舍五入。您可以使用Math.Round()函数来实现。
例如:
int decimalPlaces = 2;
double finalMultiplier = 2.225f;
finalMultiplier = Math.Round(finalMultiplier,decimalPlaces,MidpointRounding.ToEven);
//Will round 2.225 to 2.22
BigInteger cost = new BigInteger(500);
cost *= ((BigInteger) (finalMultiplier * Math.Pow(10,decimalPlaces))); //Multiply by 222
cost /= (BigInteger) (Math.Pow(10,decimalPlaces)); //Divide by 100
print(cost); //1110
Here的一些有关C#中不同取整模式的信息。这样做可以帮助您指定要如何进行四舍五入,并且我已经向您展示了如何实现其他人所说的分解小数的内容。我会让您自由选择正确的变量,但是希望这会有所帮助!您要做的就是用BigInteger替换成本并使用我在那里提供的finalMultiplier。您可以根据自己的喜好自定义小数位数。
本文链接:https://www.f2er.com/3108203.html