2014-01-10 3 views
-2

내 앱에서 숫자를 계산할 때 출력에 소수점이 없습니다! 이 내가 사용하고있는 코드입니다 : 실제 출력은 87,18667해야iOS 계산 번호에 소수점이 표시되지 않습니다.

int Vijfhonderdmeter = [_VijfHonderd.text intValue]; 
int vijftienhonderdmeter = [_vijftienhonderd.text intValue]; 

int vijfdeeldrie = vijftienhonderdmeter/3; 

int puntentotaal = Vijfhonderdmeter + vijfdeeldrie; 
_PuntenTotaal.text = [NSString stringWithFormat:@"%d",puntentotaal]; 

,하지만 내 _Puntentotaal 라벨은 87

사람이 해결책을 가지고 있음을 보여줍니다? 그런데

:

(_VijfHonderd.text intValue = 44.05). 
(_vijftienhonderd.text intValue = 129.41). 

이 시간 내 주셔서 감사합니다 :)

도움
+0

[가능한 두 개의 정수를 나누는 이유는 무엇입니까?] (http://stackoverflow.com/questions/16221776/why-dividing-two-integers-doesnt-get-a-float) –

답변

0

귀하의 코드는 int 데이터 형식으로 운영하고 있습니다로 항상 비 진수 값을 반환합니다.

int Vijfhonderdmeter = [_VijfHonderd.text intValue]; here you are getting a non decimal value & later also you are operating it with other non-decimal values. To get decimal values, you should use `double` or `float` datatype. 

지금,이 시도 :

float Vijfhonderdmeter = [_VijfHonderd.text floatValue]; 
float vijftienhonderdmeter = [_vijftienhonderd.text floatValue]; 

float vijfdeeldrie = vijftienhonderdmeter/3; 

float puntentotaal = Vijfhonderdmeter + vijfdeeldrie; 
_PuntenTotaal.text = [NSString stringWithFormat:@"%f",puntentotaal]; 

가에서 premitive 데이터 유형에 대한 자세한 지식 this link을 참조하십시오 목적-C

+0

어느 쪽도 일하지 않을 것이다. Int를 Int로 나눈 값은 여전히 ​​int입니다. '/ 3.0' 또는'/ 3.0f'로 변경하십시오. – Putz1103

+0

@ Putz1103 아니요, 코드가 정확합니다. 'float/int'는'float'으로 처리됩니다. – rmaddy

+0

아, 그렇습니다. 나는 op의 int 프리미티브를 읽었을뿐, 업데이트 플로트 프리미티브는 읽지 못했습니다. – Putz1103

2

3 문제 :

1) 당신은 정수 나누기를 사용하는 정수 값. 부동 소수점 숫자를 원하는 경우에 당신은 부동 소수점 값에 필요 포인트 부문 부동 않습니다

double Vijfhonderdmeter = [_VijfHonderd.text doubleValue]; 
double vijftienhonderdmeter = [_vijftienhonderd.text doubleValue]; 

double vijfdeeldrie = vijftienhonderdmeter/3.0; 

2) 당신은 %d를 사용하여 결과를 포맷한다. double 값이있는 %f을 사용하십시오.

3) stringWithFormat:이 아닌 NSNumberFormatter을 사용하여 숫자의 서식을 지정하십시오. 이렇게하면 로케일에 따라 모든 사용자가 올바르게 보이는지 확인할 수 있습니다.

관련 문제