1
私の物理教師はクラスに苦労しました。私はいくつかのことを計算するプログラムを作成しようとしています。ある時点では、ある量の分子にパーセンテージを乗じる必要があります。 Ulongは6022 * 10^19ほど大きい数字を保持することができないので、.net 4.0からBigIntegerを使用する必要があります。しかし、BigIntegerとdoubleには乗算を適用できません。私は整数だけ必要です。これを回避する方法はありますか?次のように コードは次のとおりです。BigIntegerにDoubleを掛けて
private static BigInteger pencapmoles = BigInteger.Pow(6022/9, 19);
private static BigInteger inkmoles = pencapmoles;
private static BigInteger tries = 0;
private static BigInteger molesinbucket = BigInteger.Pow(26761768, 19);
private static double percentage;
static void Main(string[] args)
{
while (inkmoles > 1)
{
percentage = (double)(inkmoles/molesinbucket);
inkmoles = pencapmoles * percentage;
tries++;
}
Console.WriteLine($"It only took us {tries} tries.");
}
はBigInteger' 'へ' percentage'をキャストします。このように 'inkmoles = pencapmoles *(BigInteger)%;' –
なぜBigIntegerを使用していますか?これらは、倍精度として容易に表現できる物理量(「試行」を除く)です。 –
すべての物理量にdoubleを使用するだけです。整数は、あなたが知っている数量にのみ使用してください**正確に**あるものがどれくらいあるか。 –