数学函数 - 数值

数值数学函数仅对数值表达式进行操作,如果用于其他任何值,将返回错误。另请参阅 数学运算符

示例图

以下图用于以下示例

graph numeric functions

要重新创建图,请针对空的 Neo4j 数据库运行以下查询

CREATE
  (alice:Developer {name:'Alice', age: 38, eyes: 'Brown'}),
  (bob:Administrator {name: 'Bob', age: 25, eyes: 'Blue'}),
  (charlie:Administrator {name: 'Charlie', age: 53, eyes: 'Green'}),
  (daniel:Adminstrator {name: 'Daniel', age: 54, eyes: 'Brown'}),
  (eskil:Designer {name: 'Eskil', age: 41, eyes: 'blue', likedColors: ['Pink', 'Yellow', 'Black']}),
  (alice)-[:KNOWS]->(bob),
  (alice)-[:KNOWS]->(charlie),
  (bob)-[:KNOWS]->(daniel),
  (charlie)-[:KNOWS]->(daniel),
  (bob)-[:MARRIED]->(eskil)

abs()

详情

语法

abs(输入)

描述

返回 INTEGERFLOAT 的绝对值。

参数

名称

类型

描述

input

INTEGER | FLOAT

一个将返回其绝对值的数值。

返回值

INTEGER | FLOAT

注意事项

abs(null) 返回 null

如果 input 为负,则返回 -(input) (即 input负值)。

示例 1. abs()
查询
MATCH (a), (e) WHERE a.name = 'Alice' AND e.name = 'Eskil'
RETURN a.age, e.age, abs(a.age - e.age)

返回年龄差的绝对值。

结果
a.age e.age abs(a.age - e.age)

38

41

3

行数: 1

ceil()

详情

语法

ceil(输入)

描述

返回大于或等于给定数字且等于 INTEGER 的最小 FLOAT

参数

名称

类型

描述

input

FLOAT

一个将向上舍入到最接近的整数的值。

返回值

FLOAT

注意事项

ceil(null) 返回 null

示例 2. ceil()
查询
RETURN ceil(0.1)

返回 0.1 的向上取整值。

结果
ceil(0.1)

1.0

行数: 1

floor()

详情

语法

floor(输入)

描述

返回小于或等于给定数字且等于 INTEGER 的最大 FLOAT

参数

名称

类型

描述

input

FLOAT

一个将向下舍入到最接近的整数的值。

返回值

FLOAT

注意事项

floor(null) 返回 null

示例 3. floor()
查询
RETURN floor(0.9)

返回 0.9 的向下取整值。

结果
floor(0.9)

0.0

行数: 1

isNaN()

详情

语法

isNaN(输入)

描述

返回给定的 INTEGERFLOAT 是否为 NaN。

参数

名称

类型

描述

input

INTEGER | FLOAT

一个用于与 NaN 比较的数值。

返回值

BOOLEAN

注意事项

isNaN(null) 返回 null

示例 4. isNaN()
查询
RETURN isNaN(0/0.0)

由于该值为 NaN,返回 true

结果
isNaN(0/0.0)

true

行数: 1

rand()

详情

语法

rand()

描述

返回一个介于 0 (包含) 到 1 (不包含) 之间的随机 FLOAT

返回值

FLOAT

示例 5. rand()
查询
RETURN rand()

返回一个随机数。

结果
rand()

0.5460251846326871

行数: 1

round()

详情

语法

round(值[, 精度, 模式])

描述

返回一个四舍五入的数值,可选地使用指定的精度和舍入模式。

参数

名称

类型

描述

FLOAT

一个要四舍五入的值。

精度

INTEGER | FLOAT

舍入精度。

模式

STRING

一种精度舍入模式 (UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN)。

返回值

FLOAT

模式
模式 描述

UP

向远离零的方向舍入。

DOWN

向零的方向舍入。

CEILING

向正无穷方向舍入。

FLOOR

向负无穷方向舍入。

HALF_UP

向给定精度最接近的值舍入,当出现平局时,总是向远离零的方向舍入。

HALF_DOWN

向给定精度最接近的值舍入,当出现平局时,总是向零的方向舍入。

HALF_EVEN

向给定精度最接近的值舍入,当出现平局时,总是向偶数邻居舍入。

注意事项

对于舍入模式,平局表示给定精度的两个最接近的值与给定值的距离相等。例如,对于精度 1,2.15 是一个平局,因为它与 2.1 和 2.2 的距离相等,而 2.151 不是平局,因为它更接近 2.2。

如果 round() 的任何输入参数为 null,则返回 null

示例 6. round()
查询
RETURN round(3.141592)

返回 3.0

结果
round(3.141592)

3.0

行数: 1

示例 7. 负数平局的 round()
查询
RETURN round(-1.5)

平局时向正无穷方向舍入,因此返回 -1.0

结果
round(-1.5)

-1.0

行数: 1

带精度的 round()

示例 8. 带精度的 round()
查询
RETURN round(3.141592, 3)

返回 3.142

结果
round(3.141592, 3)

3.142

行数: 1

示例 9. 精度为 0 且带平局的 round()
查询
RETURN round(-1.5, 0)

为了与 round(-1.5) 对齐,返回 -1.0

结果
round(-1.5, 0)

-1.0

行数: 1

示例 10. 精度为 1 且带平局的 round()
查询
RETURN round(-1.55, 1)

默认情况下,当存在平局时,向远离零的方向舍入,因此返回 -1.6

结果
round(-1.55, 1)

-1.6

行数: 1

带精度和舍入模式的 round()

示例 11. 带精度和 UP 舍入模式的 round()
查询
RETURN round(1.249, 1, 'UP') AS positive,
round(-1.251, 1, 'UP') AS negative,
round(1.25, 1, 'UP') AS positiveTie,
round(-1.35, 1, 'UP') AS negativeTie

返回使用精度 1 和 UP 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.3

-1.3

1.3

-1.4

行数: 1

示例 12. 带精度和 DOWN 舍入模式的 round()
查询
RETURN round(1.249, 1, 'DOWN') AS positive,
round(-1.251, 1, 'DOWN') AS negative,
round(1.25, 1, 'DOWN') AS positiveTie,
round(-1.35, 1, 'DOWN') AS negativeTie

返回使用精度 1 和 DOWN 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.2

-1.2

1.2

+-1.3

行数: 1

示例 13. 带精度和 CEILING 舍入模式的 round()
查询
RETURN round(1.249, 1, 'CEILING') AS positive,
round(-1.251, 1, 'CEILING') AS negative,
round(1.25, 1, 'CEILING') AS positiveTie,
round(-1.35, 1, 'CEILING') AS negativeTie

返回使用精度 1 和 CEILING 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.3

-1.2

1.3

-1.3

行数: 1

示例 14. 带精度和 FLOOR 舍入模式的 round()
查询
RETURN round(1.249, 1, 'FLOOR') AS positive,
round(-1.251, 1, 'FLOOR') AS negative,
round(1.25, 1, 'FLOOR') AS positiveTie,
round(-1.35, 1, 'FLOOR') AS negativeTie

返回使用精度 1 和 FLOOR 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.2

-1.3

1.2

-1.4

行数: 1

示例 15. 带精度和 HALF_UP 舍入模式的 round()
查询
RETURN round(1.249, 1, 'HALF_UP') AS positive,
round(-1.251, 1, 'HALF_UP') AS negative,
round(1.25, 1, 'HALF_UP') AS positiveTie,
round(-1.35, 1, 'HALF_UP') AS negativeTie

返回使用精度 1 和 HALF_UP 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.2

-1.3

1.3

-1.4

行数: 1

示例 16. 带精度和 HALF_DOWN 舍入模式的 round()
查询
RETURN round(1.249, 1, 'HALF_DOWN') AS positive,
round(-1.251, 1, 'HALF_DOWN') AS negative,
round(1.25, 1, 'HALF_DOWN') AS positiveTie,
round(-1.35, 1, 'HALF_DOWN') AS negativeTie

返回使用精度 1 和 HALF_DOWN 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.2

-1.3

1.2

-1.3

行数: 1

示例 17. 带精度和 HALF_EVEN 舍入模式的 round()
查询
RETURN round(1.249, 1, 'HALF_EVEN') AS positive,
round(-1.251, 1, 'HALF_EVEN') AS negative,
round(1.25, 1, 'HALF_EVEN') AS positiveTie,
round(-1.35, 1, 'HALF_EVEN') AS negativeTie

返回使用精度 1 和 HALF_EVEN 舍入模式的舍入值。

结果
positive negative positiveTie negativeTie

1.2

-1.3

1.2

-1.4

行数: 1

sign()

详情

语法

sign(输入)

描述

返回 INTEGERFLOAT 的符号值:如果数字为 0 则返回 0,任何负数返回 -1,任何正数返回 1。

参数

名称

类型

描述

input

INTEGER | FLOAT

一个正数或负数。

返回值

INTEGER

注意事项

sign(null) 返回 null

示例 18. sign()
查询
RETURN sign(-17), sign(0.1)

返回 -170.1 的符号。

结果
sign(-17) sign(0.1)

-1

1

行数: 1

© . All rights reserved.