我知道base-2和base-10的基本定义,但我想知道它们在程序的performance和中有什么区别。
例如:在C#中,数据类型double是Base-2,而数据类型decimal是Base-10,因此double计算非常快,decimal比decimal慢10倍。
我不明白为什么会这样,所以请大家事先向我解释一下,谢谢:)
发布于 2017-06-15 16:43:10
性能差异的原因并不是数字基的差异,而是在执行计算时硬件辅助的可用性。
在.NET中,表示方式如下 the IEEE-754标准,这意味着在大多数平台上执行double计算需要大量的硬件支持。
与二进制表示不同的是,十进制表示有点新(标准使用不到十年),所以硬件援助的可用性仍然相当有限。。这在将来可能会改变,但目前这意味着decimal中的计算需要更多的CPU周期来执行。
https://stackoverflow.com/questions/44572680
复制相似问题