精确数学

高精度算术函数

限定名称 类型

apoc.number.exact.add(stringA STRING, stringB STRING) - 返回将两个给定大数字相加的结果(使用 Java BigDecimal)。

函数

apoc.number.exact.div(stringA STRING, stringB STRING, precision INTEGER, roundingMode STRING) - 返回一个大数字除以另一个大数字的结果(使用 Java BigDecimal)。

函数

apoc.number.exact.mul(stringA STRING, stringB STRING, precision INTEGER, roundingMode STRING) - 返回两个给定大数字相乘的结果(使用 Java BigDecimal)。

函数

apoc.number.exact.sub(stringA STRING, stringB STRING) - 返回一个大数字减去另一个大数字的结果(使用 Java BigDecimal)。

函数

apoc.number.exact.toExact(number INTEGER) - 返回给定数字的精确值(使用 Java BigDecimal)。

函数

apoc.number.exact.toFloat(string STRING, precision INTEGER, roundingMode STRING) - 返回给定大数字的 FLOAT 值(使用 Java BigDecimal)。

函数

apoc.number.exact.toInteger(string STRING, precision INTEGER, roundingMode STRING) - 返回给定大数字的 INTEGER 值(使用 Java BigDecimal)。

函数

  • roundingMode(舍入模式)的可用选项包括 UPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY

precision(精度)参数允许用户设置运算结果的精度。precision 参数的默认值为 0(表示无限精度算术),而 roundingMode 的默认值为 HALF_UP。有关 precisionroundingMode 参数的更多信息,请参阅 Java 的 MathContext 页面

示例

在下方的示例中,precision 参数被设置为 2。因此,仅返回结果的前两位数字是精确的。

RETURN apoc.number.exact.div('5555.5555','5', 2, 'HALF_DOWN') as value;
表 1. 结果

1100

在下方的示例中,precision 参数被设置为 8。因此,返回结果的前八位数字是精确的。

RETURN apoc.number.exact.div('5555.5555','5', 8, 'HALF_DOWN') as value;
表 2. 结果

1111.1111

这些函数接受科学计数法作为输入。例如

RETURN apoc.number.exact.add('1E6','1E6') as value;
表 3. 结果

2000000

有关更多信息,请参阅 Java 的 BigDecimal 页面 以及 Java 的 BigInteger 页面