2011-01-09 18 views
0

整数を除算しようとしていますが、結果として0が返されます。私はちょうど私が間違っていることを理解していない。私はこの例ではintのみを使用していますが、floatまたはdoubleを使用して同じ結果をテストします。間違った結果での除算

iが使用するコードは、次のとおり

int wrongAnswers = askedQuestions - playerResult; 
int percentCorrect = (playerResult/askedQuestions) * 100; 
int percentWrong = (wrongAnswers/askedQuestions) * 100; 


NSLog(@"askedQuestions: %i", askedQuestions); 
NSLog(@"playerResult: %i", playerResult); 
NSLog(@"wrongAnswers: %i", wrongAnswers); 
NSLog(@"percentCorrect: %i", percentCorrect); 
NSLog(@"percentWrong: %i", percentWrong); 
NSLog(@"calc: %i", (wrongAnswers + playerResult)); 
NSLog(@"wrong answers %: %i %%", ((wrongAnswers/askedQuestions) * 100)); 

iが得る結果は:

2011-01-09 16:45:53.411 XX [8296:207] askedQuestions:5
2011-01-09 16:45:53.412 XX [8296:207] playerResult:2
2011-01-09 16:45:53.412 XX [8296:207] wrongAnswers:3
2011-01-09 16:45 :53.413 XX [8296:207]パーセント修正:0%
2011-01-09 16:45:53.414 XX [8296:207] percentWrong:0%
2011-01-09 16:45:53.414 XX [8296:207] calc:5
2011-01-09 16 :45:53.415 XX [8296:207]間違った答えを:0%

は、私は非常によくあなたの部門が値が得られた場合を意味し、結果を格納するint型を使用している

答えて

2

10進数に小数点以下をキャストします。整数をintで割った値は、0に切り上げられます。

+4

または、他の方法で丸め(乗算し、除算して)キャストを保存します:) – schnaader

1

:-)助けいただければ幸いです0.8のように値が切り捨てられ、答えとして0が得られます

2

float型を使用してみてください。intは切り捨てられます。

7

まず、0(完全に値を失う)を得て、それを乗算します。最初に乗算してから分割する必要があります。