可能重复:
在java中操作和比较浮点数
我是否应该在比较Java中的浮点数时使用Epsilon?Float.compare(float f1,float f2)静态方法是否可以安全使用?
谢谢 !
编辑:我想我明白了.
当我写,比如说,在日食中3.6f,编译器将这个数字解释为3.6.但是,当我写1.2f*3.0f时,结果是3.6000001.虽然在数学上这是错误的,但这两个结果显然是不公平的.因此,在检查相等性时需要有一个epsilon.
但是,当我在eclipse中写入0.0f时,编译器严格地将其解释为0,因为IEEE 754能够正确处理它.因此,确保浮动是严格正的(值> 0.0f)是正确的.
我看到的唯一问题是当计算机不使用IEEE 754表示时,而是使用不能正确处理0的表示.
我对吗 ?
题:
这是可能的,因为LinkedList可能是一个双向链表(否则它无法实现Deque接口).并且追加双向链表是0(1)操作.
该addAll方法不会在恒定时间内运行.
题:
它也可能是因为LinkedHashSet"维护一个贯穿其所有条目的双向链表".