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> 

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

當從字串剖析 Quantity 時,它會記住它擁有的後綴類型,並在序列化時再次使用相同的類型。

在序列化之前,Quantity 將以「標準形式」放置。這表示指數/後綴將向上或向下調整(伴隨著尾數的相應增加或減少),以便

  • 不會遺失精度 - 不會發出小數 - 指數(或後綴)盡可能大。

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

範例

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

請注意,數量永遠不會在內部以浮點數表示。這正是此練習的重點。

非標準值仍然可以剖析,只要它們格式良好,但將以其標準形式重新發出。(所以始終使用標準形式,或不要進行差異比較。)

此格式旨在讓使用者難以在不編寫某種特殊處理程式碼的情況下使用這些數字,希望這會導致實作者也使用定點實作。


此頁面為自動產生。

如果您計劃回報此頁面的問題,請在您的問題描述中提及此頁面為自動產生。修正可能需要在 Kubernetes 專案的其他位置進行。

上次修改時間為 2024 年 8 月 28 日下午 6:01 PST:更新 v1.31 的產生 API 參考 (8ba98c79c1)