2015-09-21 11 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