C# 什么';What’存储大量数据的好方法是什么?(如572e6561)在C中#

C# 什么';What’存储大量数据的好方法是什么?(如572e6561)在C中#,c#,math,numbers,C#,Math,Numbers,我的第一个想法是实现一个类,它将系数存储为double,将10^X存储为int/short 我想使用工程符号而不是科学符号,因为它对于最终用户来说更简单 如果有这样做的项目,我似乎找不到 我知道存在System.Numerics.BigInteger,但速度相当慢。我真的很想要在移动设备上执行许多计算的高速度。 我只想把数字存储为工程符号 有什么想法吗?如果你不需要太多的精度,只需要大的数量级,那么我建议使用两个值来表示尾数和指数。两者都使用整数将更接近于内部处理浮点数的方式。但至少对尾数使用浮

我的第一个想法是实现一个类,它将系数存储为double,将10^X存储为int/short

我想使用工程符号而不是科学符号,因为它对于最终用户来说更简单

如果有这样做的项目,我似乎找不到

我知道存在System.Numerics.BigInteger,但速度相当慢。我真的很想要在移动设备上执行许多计算的高速度。 我只想把数字存储为工程符号


有什么想法吗?

如果你不需要太多的精度,只需要大的数量级,那么我建议使用两个值来表示尾数和指数。两者都使用整数将更接近于内部处理浮点数的方式。但至少对尾数使用浮点运算可能会更容易实现许多操作,但代价是尾数精度降低了几位

C有和这样的函数,分别处理浮点数的尾数和指数。我不知道有什么C#或.NET,但可能那里也有类似的功能


如果你也用double表示指数,理论上你会得到很大的数字。但如果由于四舍五入,指数不准确,那么你根本不知道指数,这使得尾数一文不值。所以,如果你需要足够大的数字来考虑这样的事情,你要么需要使用一些大整数作为指数,要么可以完全删除尾数,只需将这些大数字表示为两个幂的近似指数。对mantessa和指数使用int更有意义。或者如果可能的话使用一个库。我意识到int可能对两者都是最好的,但我不确定如何以一种不慢的方式实现它。知道这方面有什么好的库吗?integer ops并不慢,它只是一个重新规范化Mantessa的问题——任何扩展的Presision库都可以做到这一点。这可能会给你一些建议,如果你长时间不使用它们,它们可以储存在冰箱里。但若你们马上就需要,把它们放在冰箱顶部的纸袋里。你们期望的最大范围是多少?