2010-12-17 55 views
1

我使用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 

如何做到這一點?

+2

爲什麼?這就是它應該做的。 – EJP 2010-12-17 10:23:16

+0

我想在以簡化格式獲得結果之前執行某些操作。 – user339108 2010-12-17 10:45:22

回答

1

不可能的,除非你切換到Commons-Lang Fraction而不是共享,數學。

+0

目前我們使用的是commons-math而不是commons-lang,我們不使用任何高級功能。什麼是當前使用的軟件包(不確定哪些軟件包將在此處被棄用) – user339108 2010-12-17 12:13:15

+0

只需使用commons-lang分數類即可,因爲構造函數不會減少分數。 – dogbane 2010-12-17 13:50:53

2

而不是使用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 
+0

不,請查看OP的鏈接。 OP使用org.apache.commons.math.fraction,並使用org.apache.commons.lang.math。 Commons-math比commons-lang更先進。 – dogbane 2010-12-17 10:39:13

+0

Tx @dogbane,我修復了它。 – 2010-12-17 12:22:15

相關問題