簡體   English   中英

C#-如何將浮點數/指數結果轉換/顯示為完整/整數

[英]C# - How To Convert/Display a Floating-Point/Exponential Result into a Full/Whole Number

我在.Net環境中使用C#。 我有一些用戶輸入的非常大的整數值,它們之間會相互除以並顯示結果。 現在我們知道4/2 = 2很簡單,但是如果我們除以

.0232321312321312312312312321032132139813912839013809123801283012983901283012380129382190381209382190382190382109382109382109312 / 12000002323232132132132132138789783984948490238349023482390482390482390390390390390482390390390390390382382390482390902390382

答案就像1.93601056119411E-197

我想將答案顯示為完整的十進制/浮點值,而不是依賴於E符號。

我寫了一些代碼

using System.Numerics;

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

我認為這就是您要尋找的,如果您想要答案的小數部分,則必須使用Complex類型完成所有操作。 目前尚不清楚您在做什么。

編輯:

這個怎么樣

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.

我使用.ToString("N0") ,當我遇到相同的問題時,似乎可以完成工作。

我假設您不僅要在值前面加上“ 0.00 ...”,而且還希望看到411之后的“缺失”數字。

如果真是這樣,則您不能使用浮點數據類型來執行此操作,因為.NET中的浮點數據類型根本不具有所需的精度。 您將需要使用外部庫,例如W3b.Sine (未經測試,剛剛通過Google的快速搜索找到了它),該庫允許使用任意精度的小數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM