我使用Fraction來表示分數,但問題是它會立即降低到向構造函數提供輸入的最低形式。有沒有辦法來防止這種行爲?是否可以告訴分數類不要減小到最低格式
e.g. Fraction f1 = new Fraction (1, 3) == 1/3
Fraction f2 = new Fraction (2, 4) == gets reduced to 1/2 but I would rather want it as 2/4
如何做到這一點?
我使用Fraction來表示分數,但問題是它會立即降低到向構造函數提供輸入的最低形式。有沒有辦法來防止這種行爲?是否可以告訴分數類不要減小到最低格式
e.g. Fraction f1 = new Fraction (1, 3) == 1/3
Fraction f2 = new Fraction (2, 4) == gets reduced to 1/2 but I would rather want it as 2/4
如何做到這一點?
不可能的,除非你切換到Commons-Lang Fraction而不是共享,數學。
目前我們使用的是commons-math而不是commons-lang,我們不使用任何高級功能。什麼是當前使用的軟件包(不確定哪些軟件包將在此處被棄用) – user339108 2010-12-17 12:13:15
只需使用commons-lang分數類即可,因爲構造函數不會減少分數。 – dogbane 2010-12-17 13:50:53
而不是使用org.apache.commons.lang.math.Fraction.getReducedFraction(int, int)
使用org.apache.commons.lang.math.Fraction.getFraction(int, int)
System.out.println("fraction: " + Fraction.getFraction(2, 4));
System.out.println("reduced: " + Fraction.getReducedFraction(2, 4));
導致的:
fraction: 2/4
reduced: 1/2
不,請查看OP的鏈接。 OP使用org.apache.commons.math.fraction,並使用org.apache.commons.lang.math。 Commons-math比commons-lang更先進。 – dogbane 2010-12-17 10:39:13
Tx @dogbane,我修復了它。 – 2010-12-17 12:22:15
爲什麼?這就是它應該做的。 – EJP 2010-12-17 10:23:16
我想在以簡化格式獲得結果之前執行某些操作。 – user339108 2010-12-17 10:45:22