1

인터넷에서 설명되지 않은 것이 재미 있고 무엇이 apple documentation에서 오도하는 것입니다. 차이점은 무엇입니까?kCFNumberFormatter 반올림

kCFNumberFormatterRoundCeiling 

kCFNumberFormatterRoundFloor 

kCFNumberFormatterRoundDown 

kCFNumberFormatterRoundUp 

kCFNumberFormatterRoundHalfEven 

kCFNumberFormatterRoundHalfDown 

kCFNumberFormatterRoundHalfUp 

?

kCFNumberFormatterRoundCeiling 설명은 kCFNumberFormatterRoundUp와 동일하지만 그들은 문서가 실제로 ambigous입니다 kCFNumberFormatterRoundFloor 및 kCFNumberFormatterRoundDown

+0

설명서에서 오해의 소지가있는 내용은 무엇입니까? –

+0

kCFNumberFormatterRoundCeiling 설명은 kCFNumberFormatterRoundUp과 동일하지만 작동하지 않습니다. kCFNumberFormatterRoundFloor 및 kCFNumberFormatterRoundDown에서 동일한 경우입니다. – flatronka

+0

질문에 무엇을 묻는 지 묻는 것이 좋습니다. (나에게 좋은 질문 같습니다.) –

답변

0

에서 동일한 경우, 동일하게 작동하지 않습니다. 두 kCFNumberFormatterRoundFloorkCFNumberFormatterRoundDown이 부분 숫자의 적절한 수와 다음으로 큰 수 아래로

라운드로 설명되어 있습니다.

작은 테스트 결과는 이러한 반올림 모드가 음수 인에 대해 다른 결과를 나타냄을 보여줍니다.

kCFNumberFormatterRoundFloorfloor() 기능과 유사하게 동작합니다. 항상 더 작은 (또는 동등한) 값으로 반올림됩니다. 한편 kCFNumberFormatterRoundDown은 "제로"를 반올림합니다. 즉, 은 절대 값이 입력의 절대 값보다 작거나 같은 숫자를 반환합니다.

예 (NSNumberFormatter 사용) 마찬가지로

NSNumberFormatter *f1 = [[NSNumberFormatter alloc] init]; 
[f1 setMaximumFractionDigits:0]; 
[f1 setRoundingMode:NSNumberFormatterRoundFloor]; 

NSNumberFormatter *f2 = [[NSNumberFormatter alloc] init]; 
[f2 setMaximumFractionDigits:0]; 
[f2 setRoundingMode:NSNumberFormatterRoundDown]; 

double x = -1.5; 
NSLog(@"%@, %@", [f1 stringFromNumber:@(x)], [f2 stringFromNumber:@(x)]); 
// Output: -2, -1 

x = + 3.5; 
NSLog(@"%@, %@", [f1 stringFromNumber:@(x)], [f2 stringFromNumber:@(x)]); 
// Output: 3, 3 

kCFNumberFormatterRoundCeiling 입력에 크거나 같은 값을 돌려 "0으로부터 거리"(등 ceil()) 및 kCFNumberFormatterRoundUp 발사.