簡體   English   中英

如何找到兩個uint64值的模數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM