是否有一个在python中使用的//运算符的形式,我可以在java中使用,或者某种解决方法? 10 // 3 = 3
答案 0 :(得分:4)
在python 3 //
默认情况下作为分区。
在python 2.2及更高版本2.X版本中,我们可以从__future__
>>> from __future__ import division
>>> 10/3
3.3333333333333335
>>> 10//3
3
在Java中: 在划分浮点变量或值时,答案的小数部分用浮点变量表示。
float f = 10.0f / 6.0f; // result is 1.6666
double d = 10.0 / 9.0; // result is 1.1111
但是对于java中的地板:
(int)Math.floor(10/3);
答案 1 :(得分:0)
Java的整数除法的行为方式与Python中的//运算符相同。这意味着这样的事情:
(int) 9/4 == 2 is True
这里的演员阵容甚至是不必要的,因为9和4都是整数。如果一个是浮点数或双精度数,则必须使用此强制转换,因为java将不再将此语句作为整数除法执行。为了更明确你可以做到这一点
(int)Math.floor(9 / 4);
首先划分数字,然后将结果置于最接近的整数。
答案 2 :(得分:0)
public static int python_like_divisor(int x, int y) {
final remainder = x % y;
if(remainder != 0) {
return (x - remainder) / y;
}
return x / y;
}
一些基本的数学知识是好的;)
使用float-point(float,double等)值时,此方法将无法正常工作。
答案 3 :(得分:0)
要注意的一件事是:
在python 3中:
6 // -132 = -1
在Java中:
6 / -132 = 0