除法看起来很简单。 普通人能行吧。 如果不是java语言,而是C#或php的除法,那就真的很简单了。 另一方面,如果你也鄙视java的除法,那真是个无知的人。
实际上,java的除法、剩余运算有很大的不同。 java除法如果在计算上有问题的话,还很难找。 不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么,就可以更安全地写代码。
在数学除法中,0可以得到无限大的数据,所以不能作为除数。
让我们看看如何用Java除法处理这些特殊情况。
1、java整数除法:
抛0除数运行时的异常如果两个整数商会进行整数运算,Float或Double除以一个整数,则商位Float或Double类型为:
2、java中的双精度(或浮点)除法:
0成为除数,得到正负无限大。当两个数的绝对值都为0.0时,商等于NaN。 如果0.0/x,x不是0.0,则得到的有符号位为0.0。
陷阱:
零是整数预算,不能作为除数。 否则,在运行时将出现异常。
零在浮点运算中成为除数,返回值无限大。
NaN各不相同,被认为是Java的设计缺陷。
浮点数(Float或Double )的除法可以接受任何数字,并且结果始终返回浮点数。 这个数值可能不合法,需要判断和验证。
3、求余:与除法相同。
陷阱:
符号位由被除数决定。
请注意,Double、Float都提供了几种有用的判断方法,所以用它编写安全代码:
Double、Float类提供了几个常量,也可以用于判断。 当然,这些常数也很有趣。 看看源代码就知道了。