您正在像一个PHP开发人员那样思考;PHP是动态类型的语言。这意味着类型是在运行时推导的,因此小数不能在逻辑上产生整数,因此从除法运算中隐含一个
double(或
float)。
Java,C,C
++,C#和许多其他语言都是强类型化语言,因此,当将整数除以整数时,您会得到一个整数,
100/50将其还给我
2,就像
100/45给我一样
2,因为
100/45实际上是
2.2222...,将十进制截断以获得一个整数(整数除法),您得到
2。
在强类型语言中,如果要使结果符合预期,则需要显式(或隐式),这就是为什么在除法运算中将参数之一设为double或float会导致浮点除法(可返回分数)。
因此,在Java中,您可以执行以下任一操作来获取小数:
double result = 1.0 / 2;double result = 1f / 2;double result = (float)1 / 2;
从松散类型的动态语言到强类型的静态语言可能会令人讨厌,但不必担心。只是要了解,除了输入之外,您还必须格外小心进行验证,还必须验证类型。
从PHP到Java,您应该知道您 不能 做这样的事情:
$result = "2.0";$result = "1.0" / $result;echo $result * 3;
在PHP中,这会产生输出
1.5(因为
(1/2)*3 == 1.5),但是在Java中,
String result = "2.0";result = "1.0" / result;System.out.println(result * 1.5);
这将导致错误,因为您不能分割字符串(不是数字)。
希望能对您有所帮助。



