为什么是整数除法java?

为什么是整数除法java?,java,division,Java,Division,我知道在Java中,如果我将两个整数一起除法,如果结果不是整数,则小数部分被截断,并从除法中得到一个整数结果 这对我来说毫无意义!我想知道我是否可以了解一下为什么Java设计成这样 这里有一个答案: 如果你对两个整数进行运算,通常会得到一个整数,但事实并非如此 例如,在计算百分比时:(num\u答案\u正确/num\u问题)是一个包含两个整数的示例,其中我期望分数 对我来说,必须非常清楚变量num_answers_correct是什么类型的似乎很危险,尤其是在高级语言中 当您需要浮点除法时,很

我知道在Java中,如果我将两个整数一起除法,如果结果不是整数,则小数部分被截断,并从除法中得到一个整数结果

这对我来说毫无意义!我想知道我是否可以了解一下为什么Java设计成这样

这里有一个答案:

如果你对两个整数进行运算,通常会得到一个整数,但事实并非如此

例如,在计算百分比时:
(num\u答案\u正确/num\u问题)
是一个包含两个整数的示例,其中我期望分数

对我来说,必须非常清楚变量num_answers_correct是什么类型的似乎很危险,尤其是在高级语言中

当您需要浮点除法时,很容易意外地执行整数除法,但绝对不会。让程序员表示他们打算截断结果,而不是让程序员:

  • 认识到它们是两个整数的除法
  • 使用浮点型强制浮点除法(或类似的方法)
在上面提到的链接中,有人说visual basic 6正是这样做的-/是一个返回双精度的运算符,\是一个进行整数除法的运算符。这位人士说,有两个操作员太令人困惑了;不过,我不认为这会令人困惑

所以,我的问题是:

  • 我的论点有效吗?还是我遗漏了什么
  • 为什么Java使用整数除法

  • 有人能帮我看看吗?

    除非在做出这个决定时这里有人为Sun工作,否则这个问题基本上是无法回答的。答案大概是“因为C就是这样做的”,尽管这当然引出了一个问题……一个简短而过于简单的答案:Java之所以这样做是因为C。C这样做是因为硬件(算术逻辑单元)这样做(我知道太简单了,但更完整的答案应该是这样的)我怀疑丹尼斯·里奇设计C时是否考虑过数独。Java这样做是因为C这样做是因为BCPL这样做是因为B这样做是因为Algol-60和Fortran这样做,因为硬件做到了,而且现在仍然如此。对我在这一过程中遗漏的任何步骤以及任何不必要的推论表示歉意。其他语言:Cobol、PL/1及其所有衍生物、Pascal、Modula、我用过的每一种Basic语言。。。事实上,我不知道有哪种语言不能做到这一点。所以不要责怪Java。归根结底,这要归结为这样一个事实:
    int-op-int
    为任何操作符
    op
    生成
    int
    ,而不仅仅是除法。