0

.Net 環境内で C# を使用しています。ユーザーが入力した非常に大きな整数値がいくつかあり、それらは互いに除算され、結果が表示されます。これで 4/2 = 2 は単純であることがわかりました。

.0232321312321312312312312321032132139813912839013809123801283012983901283012380129382190381209382190382190382109382109382109312/ 1200000232323213213213213878978398494849023834902348239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048234902384902384902384902348239048239048234

答えは 1.93601056119411E-197 のようになります

E シンボルに依存するのではなく、完全な 10 進数/浮動小数点値として答えを表示したいと考えています。

4

3 に答える 3

2

私はいくつかのコードを書きました

using System.Numerics;

BigInteger x = BigInteger.Parse("0232321312321312312312312321032132139813912839013809123801283012983901283012380129382190381209382190382190382109382109382109312");
BigInteger y = BigInteger.Parse("1200000232323213213213213878978398494849023834902348239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048234902384902384902384902348239048239048234
")
BigInteger answer = BigInteger.Divide(x, y)
return answer.ToString("D")

それがあなたが探しているものだと思います。答えの小数部分が必要な場合は、すべてを複合型で行う必要があります。質問から何をしているのか明確ではありません。

編集:

これはどう

using System.Numerics;

BigInteger x = BigInteger.Parse("0232321312321312312312312321032132139813912839013809123801283012983901283012380129382190381209382190382190382109382109382109312");
BigInteger y = BigInteger.Parse("1200000232323213213213213878978398494849023834902348239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048239048234902384902384902384902348239048239048234
")
Complex answer = Complex.Divide((Complex)x, (Complex)y)
return answer.ToString("F50") //If 50 decimal places is enough.
于 2011-04-13T13:28:55.943 に答える
1

値の前に「0.00 ...」を付けたいだけでなく、「欠落している」数字も見たいと思います411

その場合、.NET の浮動小数点データ型には必要な精度がないため、浮動小数点データ型でこれを行うことはできません。たとえば、任意精度の小数を許可するW3b.Sine (テストされていない、簡単な Google 検索で見つけたもの) などの外部ライブラリに頼る必要があります。

于 2011-04-13T13:07:35.027 に答える
1

.ToString("N0")は同じ問題を抱えているときに仕事をしているように見えます。

于 2011-04-13T13:01:06.410 に答える