value compare NaN-aware