在Eiffel中,在对DOUBLE
类型的值执行某些操作后,我得到结果1.9999999999999998
,而预期结果应为2
。< / p>
我知道这是由于浮点运算的不准确造成的。我只需要两位数的精度(使用DOUBLE
类型),因此,如果数字可以四舍五入为两位数,我认为结果将是2
预期的。
我看过this问题,但它只讨论显示两位数字,而我想知道是否有办法整理并存储两位精度数值。
谢谢。
答案 0 :(得分:1)
dcm 和 gobo 库(均包含在contrib
下的标准EiffelStudio发行版中) - 提供类DECIMAL
和MA_DECIMAL
可以设置为以指定的精度存储和操作数字。但是,这里的精度是有效位的总数,而不是小数点后的位数。如果在小数点后需要指定的位数,请使用正确的缩放整数类型。