Quantity
Quantity 是数字的定点表示。
import "k8s.io/apimachinery/pkg/api/resource"
Quantity 是数字的定点表示。除了 String() 和 AsInt64() 访问器外,它还提供了方便的 JSON 和 YAML 编组/解组功能。
序列化格式为
\<quantity> ::= \<signedNumber>\<suffix>
(Note that \<suffix> may be empty, from the "" case in \<decimalSI>.)
\<digit> ::= 0 | 1 | ... | 9 \<digits> ::= \<digit> | \<digit>\<digits> \<number> ::= \<digits> | \<digits>.\<digits> | \<digits>. | .\<digits> \<sign> ::= "+" | "-" \<signedNumber> ::= \<number> | \<sign>\<number> \<suffix> ::= \<binarySI> | \<decimalExponent> | \<decimalSI> \<binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
\<decimalSI> ::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
\<decimalExponent> ::= "e" \<signedNumber> | "E" \<signedNumber>
无论使用哪种指数形式,Quantity 的绝对值都不能表示大于 2^63-1 的数字,小数位数也不能超过 3 位。更大或更精确的数字将被截断或向上取整。(例如:0.1m 将向上取整为 1m)。如果将来需要更大或更小的 Quantity,此限制可能会放宽。
当从字符串解析 Quantity 时,它会记住其后缀类型,并在序列化时再次使用相同的类型。
在序列化之前,Quantity 将被置于“规范形式”。这意味着指数/后缀会向上或向下调整(相应地增加或减少尾数),以满足以下条件:
- 不会丢失精度 - 不会产生小数位数字 - 指数(或后缀)尽可能大。
除非数字为负,否则将省略符号。
示例
- 1.5 将序列化为 "1500m" - 1.5Gi 将序列化为 "1536Mi"
请注意,Quantity 永远不会在内部表示为浮点数。这正是此设计的目标。
非规范形式的值只要格式正确仍然可以解析,但会以其规范形式重新输出。(因此,始终使用规范形式,或者不要进行 diff)。
此格式旨在使得在使用这些数字时,如果未编写特殊的处理代码,就会比较困难,希望这将促使实现者也使用定点实现。
本页面是自动生成的。
如果您打算报告此页面的问题,请在问题描述中说明该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。
最后修改于 2024 年 8 月 28 日下午 6:01 PST:更新为 v1.31 生成的 API 参考 (8ba98c79c1)