簡體   English   中英

Java中的運算符類似於python中的//?

[英]Operator in Java like // in python?

是否有可以在 java 中使用的在 python 中使用的 // 運算符的形式,或者某種解決方法? 10 // 3 = 3

在 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);
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、double 等)值,此方法將無法正常工作。

需要注意的一件事是:

在python 3中:

6 // -132 = -1

在java中:

6 / -132 = 0

Java 的整數除法的作用與 Python 中的 // 運算符相同。 這意味着這樣的事情:

(int) 9/4 == 2 is True

這里的強制轉換甚至是不必要的,因為 9 和 4 都是整數。 如果一個是浮點數或雙精度數,則必須進行此轉換,因為 java 將不再將此語句作為整數除法執行。 更明確地說,你可以這樣做

(int)Math.floor(9 / 4);

它首先將數字相除,然后將結果降到最接近的整數。

您可以使用java.lang.Math#floorDiv(int, int)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM