數量

Quantity 是數字的定點表示。

import "k8s.io/apimachinery/pkg/api/resource"

Quantity 是數字的定點表示。它提供了方便的 JSON 和 YAML 編組/解組,以及 String() 和 AsInt64() 訪問器。

序列化格式是

 \<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> 

無論使用三種指數形式中的哪一種,任何數量的數值都不能大於 2^63-1,也不能有超過 3 個小數位。更大或更精確的數字將被截斷或四捨五入。(例如:0.1m 將四捨五入為 1m。)如果將來我們需要更大或更小的數量,這可能會擴充套件。

當從字串解析 Quantity 時,它會記住其後綴型別,並在序列化時再次使用相同型別。

在序列化之前,Quantity 將被設定為“規範形式”。這意味著指數/字尾將向上或向下調整(伴隨著 Mantissa 的相應增加或減少),以便

  • 不損失精度 - 不會發出小數位 - 指數(或字尾)儘可能大。

除非數字為負,否則符號將被省略。

示例

  • 1.5 將被序列化為 "1500m" - 1.5Gi 將被序列化為 "1536Mi"

請注意,數量在內部永遠不會用浮點數表示。這正是這項工作的全部意義所在。

非規範值只要格式正確,仍然可以解析,但會以其規範形式重新發出。(因此,始終使用規範形式,或者不進行差異比較。)

這種格式旨在使其難以在不編寫某種特殊處理程式碼的情況下使用這些數字,希望這將促使實現者也使用定點實現。


本頁面是自動生成的。

如果你打算報告此頁面存在的問題,請在問題描述中提及此頁面是自動生成的。修復可能需要在 Kubernetes 專案的其他地方進行。

上次修改時間:2024年8月28日太平洋標準時間下午6:01:更新了v1.31的生成的API參考 (8ba98c79c1)