为什么是整数除法java?
我知道在Java中,如果我将两个整数一起除法,如果结果不是整数,则小数部分被截断,并从除法中得到一个整数结果 这对我来说毫无意义!我想知道我是否可以了解一下为什么Java设计成这样 这里有一个答案: 如果你对两个整数进行运算,通常会得到一个整数,但事实并非如此 例如,在计算百分比时:为什么是整数除法java?,java,division,Java,Division,我知道在Java中,如果我将两个整数一起除法,如果结果不是整数,则小数部分被截断,并从除法中得到一个整数结果 这对我来说毫无意义!我想知道我是否可以了解一下为什么Java设计成这样 这里有一个答案: 如果你对两个整数进行运算,通常会得到一个整数,但事实并非如此 例如,在计算百分比时:(num\u答案\u正确/num\u问题)是一个包含两个整数的示例,其中我期望分数 对我来说,必须非常清楚变量num_answers_correct是什么类型的似乎很危险,尤其是在高级语言中 当您需要浮点除法时,很
(num\u答案\u正确/num\u问题)
是一个包含两个整数的示例,其中我期望分数
对我来说,必须非常清楚变量num_answers_correct是什么类型的似乎很危险,尤其是在高级语言中
当您需要浮点除法时,很容易意外地执行整数除法,但绝对不会。让程序员表示他们打算截断结果,而不是让程序员:
- 认识到它们是两个整数的除法
- 使用浮点型强制浮点除法(或类似的方法)
有人能帮我看看吗?除非在做出这个决定时这里有人为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
,而不仅仅是除法。