需要一个数据类型来容纳 100 万个数据+ C# 中的数字
我正在用 C# 计算 PI,到目前为止它很完美,除了我的数据类型限制了我。 如果我使用双精度,我会得到如下结果。
k=0, 德尔塔= 3,14176587301587, pi=3,14176587301587
k=1, 德尔塔=-0,000173301147482709, pi=3,14159257186839
k=2, 德尔塔= 8,17736604635702E-08, pi=3,14159265364205
k=3, 增量=-5,22954018637708E-11, pi=3,14159265358975
k=4, 增量= 3,78997628626364E-14, pi=3,14159265358979
k=5, delta=-2,94045250629684E-17, pi=3,14159265358979
正如您可能注意到的,到第四次运行时,我的数字已达到最大值。十进制只能帮助一点点,但我需要很多。我的算法循环并添加。
我考虑过使用字符串,但我的问题是,如果我没有数据类型来保存这些数字,如何将它们放入字符串中?
我知道人们以前已经这样做过,我只是想知道如何...
感谢您的建议!
I am calculating PI in C#, and so far its perfect except my data types are limiting me.
If i use a double i get results like below.
k=0, delta= 3,14176587301587, pi=3,14176587301587
k=1, delta=-0,000173301147482709, pi=3,14159257186839
k=2, delta= 8,17736604635702E-08, pi=3,14159265364205
k=3, delta=-5,22954018637708E-11, pi=3,14159265358975
k=4, delta= 3,78997628626364E-14, pi=3,14159265358979
k=5, delta=-2,94045250629684E-17, pi=3,14159265358979
As you may notice, by my fourth run my digits are maxed. And decimal only helps for a little bit more, but i need A LOT. My algorithm loops and adds.
I thought about using a string, but my problem is, if i don't have a data type to hold those digits how do i get them into a string?
And i know people have done this before, i just wonder how...
Thanks for any advice!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 CodeProjectSwensen.BigInt.dll 程序集>。如果需要.net 2.0版本,可以下载
You can use Swensen.BigInt.dll assembly from CodeProject. If you need a .net 2.0 version, you can download it here.
您可以使用 BigInteger 存储小数点后的所有内容。
You could use BigInteger to store everything after the decimal point.
使用这个代码,它就像一个魅力
Use this code, it works like a charm