在存在 Decimal 的语言(C#、Python)中,它比 float/double 慢,因为硬件层面不支持它。那么为什么 DPD(密集压缩十进制)、BID(二进制整数十进制)、Decimal64 等没有像浮点数的 FPU 那样的硬件实现来提高执行速度,即使 DPD、BID 都符合 IEEE 754-2008 标准呢?
拥有定点硬件支持,而不仅仅是浮点支持,确实很棒。
目前可行的方案是使用(intnum,scale),平均值为intnum * 10-scale。
浮点有如此多的支持是由于许多几何函数,如 sin、cos、ln、e 等都是可优化的,即在硬件中。
更遗憾的是,除了 COBOL 和 SQL 之外,定点没有获得太多语言支持。
新一代的硬件支持会很好,并且已经存在更好的浮点标准。然而现实并不青睐理想优雅的建筑。