[英]How to find modulus of two uint64 values
真的很簡單的問題。 我有兩個uint64值。 我想將兩個數字相除並得到余數。
uint64 number1 = 36556800;
uint64 number2 = 59325441;
uint64 result = number1 % number2;
NSLog(@"Result: %lld", result);
上面的代碼始終打印number1的值(36556800)。
編輯:我意識到number1小於number2。 當您將這兩個數字相除時,結果就是一個分數。 我想捕捉那部分。 所以基本上在我的例子中:
36556800 / 59325441 = 0.6162
如何將6162變成變量? 整數除法會舍棄分數,所以模數運算符不是我應該使用的嗎?
59325441進入36556800多少次?
零次,因為59325441大於36556800。
從36556800中減去0 * 59325441,還剩下多少?
36556800 - 0 * 59325441 == 36556800
因此
36556800 % 59325441 == 36556800
您的代碼正在打印正確的答案。 如果您希望得到不同的答案,請編輯您的問題以包含您期望的答案,並解釋您為什么期望它。
根據修改后的問題,聽起來您想在除以之前將數字轉換為double
:
double fraction = (double)number1 / (double)number2;
NSLog(@"fraction = %.4f", fraction);
請注意, double
不能完全表示大於2 53的所有整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.