1.119. io.k8s.apimachinery.pkg.api.resource.Quantity schema
- 説明
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>
3 つの指数形式のいずれを使用する場合でも、数量が 2^63-1 を超える数値を表すことはできません。また、小数点以下 3 桁を超えることもできません。それを上回る数値、または正確な数値については、上限が適用されるか切り上げられます。(例: 0.1 m は 1 m に切り上げられます。)より多くのまたはより少ない量が必要な場合、将来拡張される可能性があります。
Quantity が文字列から解析されると、その接尾辞のタイプが記憶されシリアライズ時に同じタイプが使用されます。
シリアライズ前に、Quantity は "正規形式" にされます。これは、Exponent/接尾辞が以下のように上下に調整されることを意味します (対応して Mantissa も増加または減少)。
- 精度は失われません - 小数点以下の桁は出力されません - 指数 (または接尾辞) は可能な限り大きくなります。
数字が負の値でない限り、記号は省略されます。
例 :
- 1.5 は "1500m" として、1.5Gi は "1536Mi" としてシリアル化されます。
数量が浮動小数点数で内部的に表されることは決してないことに注意してください。それがこの演習で最も重要な点です。
非正規値も形成されている限り解析されますが、正規の形式で再省略されます。(したがって、常に正規形式を使用するか、違いを作らないでください。)
この形式は、実装者が固定小数点実装も使用することを期待して、何らかの特別な処理コードを記述しなければ、数値の使用が困難になるようにすることを目的としています。
- タイプ
-
string