我对分子,分析器和模数有一些问题。 7/3 = 2.3333333333给我一个1的模数!?一定有些错吗?我学习了一个非客观的地面课程,所以我的代码很简单,我简化了下面的代码。 (有些行是瑞典语)
调用方法:
// Anropar metod och presenterar beräkning av ett bråktal utifrån täljare och nämnare
int numerator = 7;
int denumerator = 3;
System.out.println("Bråkberäkning med täljare " + numerator + " och nämnare " + denumerator + " ger " + fraction(numerator,denumerator));
方法:
// Metod för beräkning av bråktal utifrån täljare och nämnare
public static String fraction(int numerator, int denumerator) {
// Beräkning
int resultat1 = numerator / denumerator;
int resultat2 = numerator % denumerator;
return Integer.toString(resultat1) + " rest " + Integer.toString(resultat2);
}
答案 0 :(得分:7)
3进入7,两次,剩下1。答案应该是1.这就是modulo means。
答案 1 :(得分:1)
7 modulo 3给出1.因为7 = 2 * 3 + 1。
答案 2 :(得分:1)
7 % 3 = 1
正如预期的那样。如果您想要.3333
,您可以使用模数并将其除以分母以获得1 / 3 = 0.3333
或(7.0 / 3.0) % 1 = 0.3333
答案 3 :(得分:0)
Ehm 7%3 = 1
你会期待什么?
给定两个正数,a(被除数)和n(除数),模n(缩写为mod n)可以被认为是n除以a的余数。例如,表达式“5 mod 4”将评估为1,因为5除以4会留下1的余数,而“9 mod 3”将评估为0,因为9除以3会使余数为0;在乘以3次3后,没有什么可以从9中减去。(注意,用计算器进行除法不会显示此操作引用的结果,商将表示为小数。)当a或者n是负数,这个天真的定义分解,编程语言在定义这些值方面有所不同。虽然通常使用a和n都是整数来执行,但许多计算系统允许其他类型的数字操作数。
答案 4 :(得分:0)
你没有提出问题!
如果你的问题只是:
" ...给我一个1的模数!?一定是错的吗?"
不,它不是,7/3 = 2,模数为1.由于(3 * 2)+ 1 = 7。
答案 5 :(得分:0)
%
不给出小数部分,而是给出除法的余数。这是从6开始,这是2的最高乘数低于你的数字7. 7-6是1。
答案 6 :(得分:0)
模数运算符会给你一个除法的提醒。因此,结果是1号是正常的。
另请注意,您使用的是整数... 7/3 != 2.3333333333
。
最后一件事,小心那段代码。除零将使您的程序崩溃。 ;)
答案 7 :(得分:0)
您正在使用整数操作数,因此您将获得整数结果。这就是语言的运作方式。