.Net中科学计算中最推荐的数据类型是什么?是浮动,双重还是其他?
解决方法
科学价值观往往是“自然”的价值观(长度,质量,时间等),其中开始有自然的不精确度 – 但是您可能希望非常非常大或非常非常小的数字.对于这些价值观,双重是一个好主意.它很快(硬件支持几乎无处不在),可以上下调整为巨大/微小的值,如果您不关心精确的十进制值,通常可以正常工作.
十进制是一个很好的类型为“人造”的数字,其中有一个确切的值,几乎总是自然地表示为十进制 – 这是典型的例子是货币.然而,它的存储容量是两倍(每个值为8个字节而不是4个),具有较小的范围(由于指数范围更有限),并且由于缺乏硬件支持而显着较慢.
如果存储是一个问题,我个人只会使用浮点数 – 当您只有大约7个有效小数位时,这个不准确程度才能建立起来是惊人的.
最终,正如“熊会吃你”的意见所表明的,这取决于你在谈论什么价值 – 当然你打算怎么做.没有任何进一步的信息,我怀疑双重是一个好的起点 – 但你应该根据个人情况作出决定.