处理整数
整数类型表示有符号 64 位整数。
类型名称: int
最小值: -9223372036854775808
最大值: 9223372036854775807
整数语法
整数文字包含一个或多个数字 (0-9),可以选择以 -
开头表示负数。-0
等效于 0
,而不是负数。
0
2
1254
-1254
将数据类型转换为整数
- string: 返回数字字符串 (
[0-9]
) 的整数等效值 - bool:
true
返回1
,false
返回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
)。要执行此操作,请执行以下操作
- 导入
math
包。 - 使用
math.round()
在转换为整数之前舍入浮点值。
import "math"
int(v: math.round(x: 12.54))
// Returns 13
将十六进制字符串转换为整数
要将数字的十六进制字符串表示形式转换为整数,请执行以下操作
- 导入
contrib/bonitoo-io/hex
包。 - 使用
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:00Z | 1.23 |
2021-01-01T02:00:00Z | 4.56 |
2021-01-01T03:00:00Z | 7.89 |
2021-01-01T04:00:00Z | 10.11 |
上面的示例返回
_time | _value (int) |
---|---|
2021-01-01T00:00:00Z | 1 |
2021-01-01T02:00:00Z | 4 |
2021-01-01T03:00:00Z | 7 |
2021-01-01T04:00:00Z | 10 |
要将任何列转换为整数:
data
|> map(fn: (r) => ({ r with uid: int(v: r.uid) }))
给定以下输入数据
_time | index (string) |
---|---|
2021-01-01T00:00:00Z | 100010024 |
2021-01-01T02:00:00Z | 100050213 |
2021-01-01T03:00:00Z | 200130763 |
2021-01-01T04:00:00Z | 101420099 |
上面的示例返回
_time | index (int) |
---|---|
2021-01-01T00:00:00Z | 100010024 |
2021-01-01T02:00:00Z | 100050213 |
2021-01-01T03:00:00Z | 200130763 |
2021-01-01T04:00:00Z | 101420099 |
对整数进行运算
对整数执行算术运算
要执行加法、减法、乘法或除法等整数运算,请使用 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
此页是否对您有帮助?
感谢您的反馈!