我瞭解到,使用==
比較一個雙精度不是明智的做法。然而,我想知道如果檢查雙重初始化可能是危險的或不。例如,知道變量doubleVar在初始化後不能爲零,這樣做是否安全?如果您之前將其初始化爲零,那麼將雙精度比較爲零是否正確?
Foo::Foo(){
doubleVar = 0.0; // of type double
}
void Foo::Bar(){
if(doubleVar == 0){ // has been initialized?
//...
}else{
//...
}
}
是:a)它不是初始化爲0,它的分配0給它,和b)將它與'int' 0進行比較,而不是像它被分配的'double'0.0一樣。 – chris
是的。對於這種情況它是安全的。 – haccks
我很困惑。爲什麼'doubleVar'如果被初始化就不能爲零?你不能將它初始化爲零嗎?誰告訴過你用double比較==不是明智的做法?他們給的原因是什麼? – crush