2010-07-07 10 views
0

"intAmount"를 10 진수 또는 정수 (즉, 사람이 .10 또는 1을 입력 할 수 있음)로 만들려면 아래 코드를 변경해야합니다. 마지막 줄 "myProduct"는 정수가 아닌 십진수 여야하며 예를 들어 "18.00"형식으로 제품을 반환해야합니다. 다른 사람이 누군가 내 코드 스 니핏을 변경하도록 도울 수 있습니까?NSString을 10 진수로 변환

//amt has to be converted into a decimal value its a NSString now 
NSInteger intAmount = [amt intValue]; 
//where total gets updated in the code with some whole (integer) value 
NSInteger total=0; 
//Change myProduct to a decimal with presicion of 2 (i.e. 12.65) 
NSInteger myProduct=total*intAmount; 

본 텍스트 필드에서 올바른 분수를 얻을 수

NSDecimalNumber intAmount = [amt doubleValue]; 
//Keep in mind totalCost is an NSInteger 
NSDecimalNumber total=totalCost*intAmount; 
+0

'10 진수'는 '비 정수'또는 '소수'를 의미하지 않습니다. 십진수는 기본입니다. –

+0

십진수는 또한 클래스입니다 ... 적어도 C#에서는 fl, oat 또는 double보다 좋습니다. 나는'total'과'intInteger'를 "십진수"로 유지할 것입니다. 그러나 할당 전에 바로 캐스트를 수행하십시오. 그런 다음 문자열을 "십진수"로 변환하는 방법을 찾아야합니다. 당신을 위해 워크 플로우를 단순화 하겠지만. http://forums.macrumors.com/showthread.php?t=900938 –

+1

@Hamish Grubijan :이 질문은 분명히 코코아/Objective-C에 관한 것이므로 "소수"와 같은 클래스는 없습니다. – Chuck

답변

3

사용 doubleValue 대신 intValue을 작동하지 않습니다. NSInteger 대신 double 유형의 변수에 넣으십시오. 그런 다음 인쇄 할 때 %.2g 형식을 사용하면 원하는 모양이됩니다.

+0

Carl 님이 형식을 인쇄 할 코드를 쓸 수 있습니까? –

+0

위의 수정 된 코드를 살펴보십시오. 작동하지 않습니다. –

+0

NSDecimalNumber가 아닌 double을 사용해야합니다. 그래도 % .2g은 0을 넣지 않습니다 (즉, 총계가 3.60이면 3.6을 읽고 총계가 36 인 경우 36을 읽고 36.00을 읽어야 함) –

2

십진수 값을 명시 적으로 추적해야하는 경우 NSDecimalNumber을 사용할 수 있습니다. 그러나, 당신이하는 모든 일이이 하나의 작업이라면, Carl의 솔루션이 가장 적절할 것입니다. 당신이 실수 (정수가 아닌)의 캐릭터 라인 표현이있는 경우 그합니다 (NSDecimal 구조체는 당신의 진정한 의도 경우

0

, 당신은 double 또는 float, 또는 심지어 NSDecimal 구조로 스캔하는 NSScanner 객체를 사용할 수 있습니다 NSDecimalNumber 클래스는 십진수로 정확하게 나타낼 수있는 숫자를 포함 할 때 유용합니다. “ 1.000 ”이 지역에 따라 어느 한 천 또는 하나를 의미 할 수 있기 때문에

NSString *amt = @"1.04"; 
NSScanner *aScanner = [NSScanner localizedScannerWithString:amt]; 
double theValue; 

if ([aScanner scanDouble:&theValue]) 
{ 
    // theValue should equal 1.04 (or thereabouts) 
} 
else 
{ 
    // the string could not be successfully interpreted 
} 

지역화 NSScanner 객체를 사용하는 이점은, 수는 사용자의 로케일에 따라 해석된다는 것이다.

관련 문제