在 Java 中將數字四捨五入到最接近的 5 的倍數
瀏覽人數:710最近更新:
一、簡介
在許多應用中,在某些情況下我們需要將數值四捨五入為特定數字的最接近倍數。
在本教程中,我們將探討如何在 Java 中將數字四捨五入到最接近的 5 的倍數。
2. 使用基本算術
將數字四捨五入到最接近的 5 倍數的一種方法是使用基本算術運算。
假設我們有以下 Java 範例:
public static int originalNumber = 18;
public static int expectedRoundedNumber = 20;
public static int nearest = 5;
在這裡, originalNumbеr
是我們想要捨入的起始值, еxpеctеdRoundеdNumbеr
是捨入後的預期結果, nеarеst
代表我們希望捨入數字的倍數(在本例中為 5)。
讓我們看看以下簡單的方法來實現轉換任務:
@Test
public void givenNumber_whenUsingBasicMathOperations_thenRoundUpToNearestMultipleOf5() {
int roundedNumber = (originalNumber % nearest == 0) ? originalNumber : ((originalNumber / nearest) + 1) * nearest;
assertEquals(expectedRoundedNumber, roundedNumber);
}
此策略利用基本的算術運算,檢查原始數字是否可以被所需倍數整除;如果不是,則透過調整商數並乘以最接近的倍數來進行舍入。
3.使用Math.cеil()
另一種方法是使用 Java Math
類別中的Math.cеil()
方法以及一些數學運算:
@Test
public void givenNumber_whenUsingMathCeil_thenRoundUpToNearestMultipleOf5() {
int roundedNumber = (int) (Math.ceil(originalNumber / (float) (nearest)) * nearest);
assertEquals(expectedRoundedNumber, roundedNumber);
}
在這裡,我們透過取得大於或等於原始數字除以指定倍數的結果的最小值來確保舍入過程。
4.使用Math.floor()
要將數字舍入為小於或等於參數的最大double
,我們應該使用Math.floor()
方法:
@Test
public void givenNumber_whenUsingMathFloor_thenRoundUpToNearestMultipleOf5() {
int roundedNumber = (int) (Math.floor((double) (originalNumber + nearest / 2) / nearest) * nearest);
assertEquals(expectedRoundedNumber, roundedNumber);
}
也就是說,該方法將最接近的倍數的一半相加,然後執行地板除法,確保與最接近的倍數對齊。
5.使用Math.round()
與上述方法相同,但如果參數是float
,則此方法傳回int
值;如果參數是 double,則傳回long
值double:
@Test
public void givenNumber_whenUsingMathRound_thenRoundUpToNearestMultipleOf5() {
int roundedNumber = Math.round(originalNumber / (float) (nearest)) * nearest;
assertEquals(expectedRoundedNumber, roundedNumber);
}
Math.round()
方法透過將原始數字除以所需倍數的結果四捨五入到最接近的整數來實現四捨五入。
六,結論
總之,我們在本教程中探索了在 Java 中將數字四捨五入到最接近的 5 倍數的多種方法。根據我們的特定要求,我們可以選擇最適合我們需求的方法。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議