web-dev-qa-db-ja.com

Java:最も近い5の倍数(切り上げまたは切り下げ)

数値を最も近い5の倍数(切り上げまたは切り下げ)に丸める必要があります。たとえば、ここに数字のリストとその隣の数字を示します。

12.5  10
62.1  60
68.3  70
74.5  75
80.7  80

数字は正の数のみです。

45
AndroidDev

テストしていませんが、5*(Math.round(f/5));は動作するはずです

81
gefei

上限値に最も近い5の倍数

5*(Math.ceil(Math.abs(number/5)));

低い値

5*(Math.floor(Math.abs(number/5)));

正の値のみを提供します。

33
Rajesh Sampath
public static void main(String args[]) {
    double num = 67.5;
    if (num % 5 == 0)
        System.out.println("OK");
    else if (num % 5 < 2.5)
        num = num - num % 5;
    else
        num = num + (5 - num % 5);
    System.out.println(num);

}

これを試して。

6
Achintya Jha

Gefeiのソリューションは機能していますが、次のように明示的にdoubleに変換する必要がありました:5*(Math.round((double)f/5))

5
Máté Pintér

このようなものはどうですか:

return round((number/5))*5;
3
koljaTM

このページには他にも多くのソリューションがありますが、これは最も簡潔なものだと思います。

与えられた数値に対して最も近いxの倍数を見つけるには、

xを倍数にし、numを指定した数にします。

// The closest multiple of x <= num
int multipleOfX = x * ( num / x );

あなたの場合:

int multipleOf5 = 5 * ( num / 5 );
1
user10073385