非常简单的问题。我有两个uint64值。我想把两个数字分开并得到余数。
uint64 number1 = 36556800;
uint64 number2 = 59325441;
uint64 result = number1 % number2;
NSLog(@"Result: %lld", result);
以上代码始终打印number1(36556800)的值。
编辑:我意识到number1小于number2。当你将这两个数字分开时,结果就是一个分数。我想抓住那个分数。所以基本上在我的例子中: 36556800 / 59325441 = 0.6162
如何将6162变为变量?整数除法丢弃分数,因此不是模数运算符我应该使用什么?
答案 0 :(得分:3)
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 的所有整数。