값이 0 인 float보다 언트 된 float이 주어 졌을 때 다른 방법을 사용해야하는 메서드가 있습니다. 기본적으로 변수가 있는지 여부를 확인해야합니다. 0언 세트 된 플로트와 값이 0 인 플로팅을 어떻게 구별 할 수 있습니까?
그래서, 의 나는 변수가 설정되지 않은 경우이 (전무는, NULL, NO 등) 및 방법 0의 값에 true를 반환하지 않고보고 테스트 할 수 있습니다 설정되지 않은 값으로 어떤 자리를 사용한다 ?
값이 0 인 float보다 언트 된 float이 주어 졌을 때 다른 방법을 사용해야하는 메서드가 있습니다. 기본적으로 변수가 있는지 여부를 확인해야합니다. 0언 세트 된 플로트와 값이 0 인 플로팅을 어떻게 구별 할 수 있습니까?
그래서, 의 나는 변수가 설정되지 않은 경우이 (전무는, NULL, NO 등) 및 방법 0의 값에 true를 반환하지 않고보고 테스트 할 수 있습니다 설정되지 않은 값으로 어떤 자리를 사용한다 ?
가변 값을 사용하여 설정되지 않은 상태를 나타내면 변수가 해당 상수 값을 합법적으로 얻으면 종종 오류가 발생합니다.
NSNumber
을 사용하여 플로트를 저장하는 것이 좋습니다. 그렇게하면 nil
일뿐만 아니라 그 상태로 기본 설정됩니다.
소수의 수레 만 필요하다고 가정합니다. 수백만 개가 필요하면 NSNumber
이 너무 느리고 메모리가 많이 필요할 수 있습니다.
이 수레로 수학을해야하므로 NSNumber는 이상적이지 않습니다. 일시적으로 변환 할 수 있다고 생각하지만 비싸고 불필요한 것 같습니다. NaN과 같은 것을 사용하는 것의 위험성을 확대 할 수 있습니까? – Nathan
위험은 부동 소수점이 할당되었지만 NaN 값을 보유하여 코드에서 할당되지 않은 것으로 처리 할 수있는 경우입니다. 물론, 어쨌든 맹목적으로 NaN을 대부분의 수학 루틴에 전달해서는 안됩니다. 이 값이 사용자로부터 나온 것이라면 입력 결과가 NaN이되었을 때 다시 입력하도록 알려주는 것도 논리적입니다. – Dondragmer
이러한 float
속성을 오버로드하는 대신 (X 및 Y라고 부름) 각 속성에 대해 별도의 isValid
플래그를 만듭니다. 부동 소수점이 설정되지 않았 음을 나타내도록 플래그를 초기화하고 플래그를 적절하게 관리하기위한 자체 setter를 제공하십시오. 당신은 실제로 한 단계 더 가서 X는 반대의 경우도 마찬가지 Y를 할당에 대한 세터를 가질 수
if (self.isXValid == YES) {
self.Y = ... // assigning to Y sets isYValid to YES
}
else if (self.isYValid == YES) {
self.X = ... // assigning to Y sets isXValid to YES
}
: 그래서 당신의 코드가 같을 수 있습니다. 또는 X와 Y가 너무 가깝게 연결되어있어 다른 변수의 값을 기반으로 계산할 수 있다면 실제로 두 속성에 대해 하나의 변수 만 필요합니다.
왜 NaN (말하자면 1.0/0.0)입니까? float가 NaN인지 테스트하려면, 그냥 num! = num' (NaN은 그 자체가 아님)이어야합니다. – cHao
0으로 나누기로 NaN을 얻는 것은 위험합니다. 신호음을 발생 시키거나 생성 할 수 있으므로 –
더 좋은 방법이 있습니까? 나는 의도적으로 생성하는 방법에 대해 걱정할 정도로 NaN을 망쳐 놓지는 않았습니다. :) 꽤 확실한'NaN'은 float 리터럴로 작동하지 않을 것입니다 ... – cHao