2015-09-21 44 views
0

Double::sum是添加雙打的方法參考,即。 (a,b) -> a+bJDK中是否有方法引用來減去雙精度?

爲什麼在JDK中沒有方法參考?即(a,b) -> a-b

+2

使用這個庫是適得其反,你已經花了更多的時間寫作比你已經知道的作品,是很簡單的代碼這個問題。 – Tunaki

+0

https://functionaljava.googlecode.com/svn/artifacts/3.0/javadoc/fj/function/Integers.html雖然沒有用過我自己 –

+4

'Double :: sum'是減少操作和類似的方便的方法參考。由於減號不是關聯的,因此這種操作不合適。但是,如果你需要一個減號,只需使用'(a,b) - > a-b'。爲此添加第三個庫依賴關係聽起來很瘋狂。 – Holger

回答

9

Double.sum方法的主要目的是幫助像減少或Arrays.parallelPrefix使用情況由於減不關聯的功能,它是不適合這種使用情況。

僅僅爲了這樣一個簡單的方法而添加第三方庫依賴關係是不推薦的。請記住,如果您偏好lambda表達式的命名方法,您總是可以創建自己的方法。

E.g.

static double minus(double a, double b) { 
    return a-b; 
} 

,並使用MyClass::minusThirdPartyClass::minus知識性...

2

沒有內置的方法。但我不認爲,ITDO任何其他魔術不是簡單地做

double result = a-b; 

看來你在這裏想到:)

0

因此,沒有內置的方法用於減去雙打。然而,如果你使用的BigDecimal存儲小數,那麼你可以試試這個:

BigDecimal a = new BigDecimal("10.6"); 
BigDecimal b = new BigDecimal("4.3"); 
BigDecimal result = a.subtract(b); 
System.out.println(result); 

;否則可以使用減去的簡單方法兩個數字,即,A-B。另外需要注意的是,在Java中,雙值IEEE floating point numbers