文档文档

处理整数

整数类型表示有符号 64 位整数。

类型名称: int
最小值: -9223372036854775808
最大值: 9223372036854775807

整数语法

整数文字包含一个或多个数字 (0-9),可以选择以 - 开头表示负数。-0 等效于 0,而不是负数。

0
2
1254
-1254

将数据类型转换为整数

使用 int() 函数 将以下 基本类型 转换为整数

  • string: 返回数字字符串 ([0-9]) 的整数等效值
  • bool: true 返回 1false 返回 0
  • duration: 返回持续时间(纳秒)
  • time: 返回等效的 纳秒纪元时间戳
  • float: 截断小数点后的浮点值
  • uint: 返回无符号整数的整数等效值
int(v: "123")
// 123

int(v: true)
// Returns 1

int(v: 1d3h24m)
// Returns 98640000000000

int(v: 2021-01-01T00:00:00Z)
// Returns 1609459200000000000

int(v: 12.54)
// Returns 12

在转换为整数之前舍入浮点值

当将 浮点数 转换为整数时,int()截断小数点后的浮点值(例如,将 12.54 截断为 12)。您可能希望在转换之前将浮点值四舍五入到最接近的整数(将 12.54 舍入为 13)。要执行此操作,请执行以下操作

  1. 导入 math
  2. 使用 math.round() 在转换为整数之前舍入浮点值。
import "math"

int(v: math.round(x: 12.54))
// Returns 13

将十六进制字符串转换为整数

要将数字的十六进制字符串表示形式转换为整数,请执行以下操作

  1. 导入 contrib/bonitoo-io/hex
  2. 使用 hex.int() 将十六进制字符串转换为整数。
import "contrib/bonitoo-io/hex"

hex.int(v: "1e240")
// Returns 123456

将列转换为整数

Flux 允许您遍历 表流 中的行并将列转换为整数。

要将 _value 列转换为整数,请使用 toInt() 函数

toInt() 仅对 _value 列进行操作。

data
    |> toInt()
给定以下输入数据
_time_value (float)
2021-01-01T00:00:00Z1.23
2021-01-01T02:00:00Z4.56
2021-01-01T03:00:00Z7.89
2021-01-01T04:00:00Z10.11
上面的示例返回
_time_value (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z4
2021-01-01T03:00:00Z7
2021-01-01T04:00:00Z10

要将任何列转换为整数:

  1. 使用 map() 迭代和重写行。
  2. 使用 int() 将列值转换为整数。
data
    |> map(fn: (r) => ({ r with uid: int(v: r.uid) }))
给定以下输入数据
_timeindex (string)
2021-01-01T00:00:00Z100010024
2021-01-01T02:00:00Z100050213
2021-01-01T03:00:00Z200130763
2021-01-01T04:00:00Z101420099
上面的示例返回
_timeindex (int)
2021-01-01T00:00:00Z100010024
2021-01-01T02:00:00Z100050213
2021-01-01T03:00:00Z200130763
2021-01-01T04:00:00Z101420099

对整数进行运算

对整数执行算术运算

要执行加法、减法、乘法或除法等整数运算,请使用 Flux 算术运算符。操作数必须是相同类型。运算返回整数。

当使用整数操作数进行运算时,小数结果将在小数点处被截断。

1 + 45
// Returns 46

1 - 45
// Returns -44

12 * 100
// Returns 1200

100 / 200
// Returns 0

10 ^ 2
// Returns 100

对整数执行位运算

使用 experimental/bitwise 对整数执行位运算。

import "experimental/bitwise"

bitwise.sand(a: 12, b: 21)
// Returns 4

bitwise.sor(a: 12, b: 21)
// Returns 29

bitwise.sxor(a: 12, b: 21)
// Returns 25

bitwise.sclear(a: 12, b: 21)
// Returns 8

bitwise.snot(a: 12)
// Returns -13

bitwise.slshift(a: 12, b: 21)
// Returns 25165824

bitwise.srshift(a: 21, b: 4)
// Returns 1

比较整数

使用 Flux 比较运算符 比较整数。操作数必须是相同类型。运算返回布尔值。

12345600 == 12345601
// Returns false

2 > -2
// Returns true

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最新的数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层级可供非商业家庭或业余爱好者使用。

有关更多信息,请查看