JDK 中是否有减去双精度的方法参考?

Is there a method reference in JDK for subtracting doubles?

Double::sum 是添加双打的方法参考,即。 (a,b) -> a+b.

为什么JDK中没有minus的方法参考? IE。 (a,b) -> a-b?

没有内置方法。但我不认为,它除了简单地做

double result = a-b;

看来你想多了:)

使用java.math.BigDecimal

Link:http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#subtract%28java.math.BigDecimal%29

因此没有用于减去双打的内置方法。但是,如果您使用 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 中,double 值是 IEEE floating point numbers

Double.sum 等方法的主要目的是帮助减少或 Arrays.parallelPrefix 等用例,因为减号不是关联函数,因此不适合此用例。

不建议为了这种简单的方法而添加 3rd 方库依赖项。请记住,如果您更喜欢命名方法而不是 lambda 表达式,您始终可以创建自己的方法。

例如

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

并且使用 MyClass::minusThirdPartyClass::minus 一样有用……