Java 模给出了意想不到的结果

Java 模给出了意想不到的结果,java,Java,我对分子、消耗子和模有一些问题。7/3=2.3333给了我一个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åkbe

我对分子、消耗子和模有一些问题。7/3=2.3333给了我一个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);
}
方法是:

 // 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);
}

3变为7两次,剩余1次。答案应该是1。就是这样。

Ehm 7%3=1

你会期待什么

给定两个正数,a(被除数)和n(除数),模n(缩写为模n)可以被认为是a除以n的余数。例如,表达式“5 mod 4”将计算为1,因为5除以4留下1的余数,而“9 mod 3”将计算为0,因为9除以3留下0的余数;9乘以3乘以3后就没有什么可减去的了。(请注意,使用计算器进行除法不会显示此操作所引用的结果,商将表示为十进制。)当a或n为负数时,此原始定义将失效,并且编程语言对这些值的定义方式不同。尽管通常在a和n都是整数的情况下执行,但许多计算系统允许使用其他类型的数值操作数


更多信息:

7模3给出1。因为7=2*3+1。

你一个问题都没问

如果你的问题只是:

“…给了我一个1的模数!?一定是错了?”


不,它不是,7/3=2,模为1。因为整数的(3*2)+1=7。

%
不会给出小数点,而是除法的余数。这里是从6开始的,它是2的最高倍数,比你的数字7低。7-6等于1

7 % 3 = 1
正如所料。如果你想要
.3333
,你可以取模并按分母对其进行微分,得到
1/3=0.3333


或者,模运算符将提醒您除法。因此,得到数字1是正常的

另外,请注意,您使用的是整数<代码>7/3!=2.3333


最后一件事,小心那些代码。除以零会使程序崩溃<代码>;)

您使用的是整数操作数,因此得到的是整数结果。这就是语言的工作原理。

7是2*3+1,那么模为1有什么奇怪的呢?分数的除数称为“分母”,语言称为“Java”-很抱歉太迂腐了,但不幸的是,编程只注重细节:-(好的,但我认为我应该得到其他部分。33333?@3D kretiv如果你想要分数部分,只需将模除以分母即可。
浮点分数=(float)resultat1/分母;
。请注意,如果你使用整数除法,你的结果将是0(因为它总是小于1).不正确。%n如果操作数是浮点型的,则给出带分数的结果。完全正确。您的答案不包含任何此类限定条件。它给人的印象是%在所有情况下都是这样。@EJP,当然,如果这让您感到困惑的话。我想这会让任何人感到困惑。显然,这并没有让我感到困惑,但感谢您的帮助嗯。