我正在初始化一个双数组:
double [] foo = new double[n];
我的理解是java语言规范导致数组中的所有值都被初始化为零。
当我查看算法时,数组中的某些条目会设置为正值。
因此,要检查特定元素是否具有非零值集,使用
是否安全if (foo[i] > 0.0)
或者我应该在那里使用epsilon。或者类似地,如果我想知道是否还没有设置值,我可以使用==
,假设零不是计算值,而是原始初始化零?通常我当然不会使用==
来比较浮点数,但我想知道这是否是一个特例?
谢谢!
答案 0 :(得分:2)
考虑这段代码
public static void main(String[] args) {
double [] foo = new double[10];
foo[5] = 10; // Sets the sixth element to 10
for (int i = 0; i < foo.length; i++) {
double val = foo[i];
if (val != 0) {
System.out.printf("foo[%d] = %f\n", i, val);
}
}
}
输出
foo[5] = 10.000000
答案 1 :(得分:1)
使用
应该没有问题if (foo[i] > 0.0)