为什么要设计iee754

Caa*_*gok 1 c java

为什么高级编程语言(例如Java,c)浮点类型被设计为浮点或双精度(IEEE 754)?浮点数和双精度将导致数值近似,这会导致精度损失(例如,0.3 - 0.2 = 0.099999),但在现实生活中,使用十进制编程比浮点运算.

Bas*_*tch 6

当前的高级语言使用IEEE754浮点数,因为大多数当前硬件(例如x86-64,ARM,PowerPC ......)具有IEEE-754的内置(和接线)支持和电路.切换到某些其他浮点表示将在性能方面极其广泛(可能慢10倍,因为每个操作都应该由软件模拟).此外,IEEE浮点标准经过精心设计和精心设计(代表了以前浮点表示的真正进展,就像在IBM大型机上一样 ......)

切换到基数10(或其他一些基础)表示将无济于事.你仍然会遇到你提到的四舍五入问题.

也许你的应用程序应该使用bignums.使用提供它们的现有库.

集合(或领域)的实数不可数无限(康托对角化参数).无论你怎么做,你都无法在有限的计算机上完全代表它.阅读一些数学教科书....