2013-03-02 36 views
0

是否可以將兩個整數分開來製作一個BigDecimal?我試圖優化我的代碼。如果我可以減少宣佈一個新的BigDecimal的次數,它應該會顯着加快我的過程。截至目前,最讓我知道我如何降低我的計算是:int除以int生成一個BigDecimal

BigDecimal tester = new BigDecimal("103993") 
     .divide(new BigDecimal("33102"), 2000, BigDecimal.ROUND_DOWN); 

我想知道是否有可能做這樣的事情:

int example1 = 103993; 
int example2 = 33102; 

BigDecimal example3 = example1/example2; 

或者類似的規定。我唯一的目標是加快執行時間。

+10

不要陷入過早優化的陷阱。在你剖析你的代碼之前(實際上有問題),你不知道什麼會花費你的時間。 – 2013-03-02 17:28:14

+0

我不確定是否有其他方法比首先將其轉換爲BigDecimal。所以優化是沒有意義的... – Mysticial 2013-03-02 17:29:03

+0

我相信這是你唯一的選擇,對於codechef來說,這也是一個問題嗎? – 2013-03-02 17:30:14

回答

4

有一種輕微的改善,你可以通過使用其valueOf方法做到這一點使用BigDecimal的內部緩存:

BigDecimal.valueOf(example1).divide(
    BigDecimal.valueOf(example2), 2000, BigDecimal.ROUND_DOWN); 
2

一句話,沒有。當你將另一個int分開時,你已經失去了信息。