在 Java 中計算兩個數字之間的百分比差異
1. 概述
在本教程中,我們將學習如何用 Java 計算兩個數字之間的百分比差異。在研究實現之前,我們將定義百分比差異的數學概念。
2. 數學公式
讓我們看看用數學方法計算兩個數字之間的百分比差異的公式:
Percentage Difference = |(V1 – V2)/(V1 + V2)/2|*100
百分比差異等於價值變化的絕對值除以兩個數字的平均值,再乘以100 。這裡, V 1和V 2代表我們要計算百分比差異的兩個值。
3.Java實現
讓我們實作一個簡單的方法來計算兩個數字之間的百分比差異:
static double calculatePercentageDifference(double v1, double v2) {
double average = (v1 + v2) / 2;
if (average == 0) {
throw new IllegalArgumentException("The average of V1 and V2 cannot be zero.");
}
return Math.abs((v1 - v2) / average) * 100;
}
在方法calculatePercentageDifference()中,我們採用兩個double值作為輸入, V1和V2 。然後,我們透過將 V1 和 V2 相加並將結果除以2來計算V1和V2的平均值。
接下來,我們驗證平均值不為零,以防止除零錯誤。然後我們計算V1和V2之間的絕對差。然後,我們將這個絕對差值除以平均值,並將結果乘以100 ,將其轉換為百分比。最後,我們傳回計算出的百分比差異。
3.1.測試實施
現在我們清楚瞭如何用數學方法計算百分比差異,讓我們實作一些測驗來驗證實作:
@Test
void whenOneValueIsZero_thenCalculateCorrectPercentageDifference() {
double v1 = 0.0;
double v2 = 50.0;
double expected = 200.0;
double result = PercentageDifferenceBetweenTwoNumbers.calculatePercentageDifference(V1, V2);
assertEquals(expected, result, "Percentage difference should be correctly calculated when one value is zero.");
}
此測試案例驗證當V1和V2的平均值為零時, calculatePercentageDifference()方法的行為。它確保拋出IllegalArgumentException來處理這種異常情況。
讓我們來驗證一下百分比差異的計算實現:
@Test
void whenCalculatePercentageDifferenceBetweenTwoNumbers_thenCorrectResult() {
double v1 = 50.0;
double v2 = 70.0;
double expected = 33.33; // Manual calculation: |(50 - 70)/((50 + 70)/2)| * 100 = 33.33
double result = PercentageDifferenceBetweenTwoNumbers.calculatePercentageDifference(V1, V2);
assertEquals(expected, result, 0.01, "Percentage difference should be correctly calculated.");
}
此測試透過計算兩個數字( V1和V2)之間的百分比差異並將結果與預期值進行比較來驗證calculatePercentageDifference()方法的正確性。
最後,我們來實作一下兩個數字何時交換的測試:
@Test
void whenV1AndV2AreSwapped_thenPercentageDifferenceIsSame() {
double v1 = 70.0;
double v2 = 50.0;
double expected = PercentageDifferenceBetweenTwoNumbers.calculatePercentageDifference(V1, V2);
double result = PercentageDifferenceBetweenTwoNumbers.calculatePercentageDifference(V2, V1);
assertEquals(expected, result, 0.01, "Percentage difference should be the same when V1 and V2 are swapped.");
}
此測試驗證交換V1和V2的位置不會影響計算的百分比差異。
4. 結論
在本文中,我們學習如何在 Java 中計算兩個數字之間的百分比差異。我們實作了一個公式來衡量相對於平均值的差異,並編寫了一些單元測試來驗證實作。
與往常一樣,本教程中使用的程式碼可以 在 GitHub 上找到。