# Quantity

> Quantity — це представлення числа у форматі з фіксованою комою. Воно забезпечує зручну серіалізацію та десеріалізацію у форматах JSON та YAML, а також має доступ до String() та AsInt64().
> 
> Формат серіалізації такий:
> 
> ```none
> <quantity>        ::= <signedNumber><suffix>
> 
>   (Зверніть увагу, що <suffix> може бути порожнім, як у випадку з "" у <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
> 
>   (Міжнародна система одиниць; Див.: http://physics.nist.gov/cuu/Units/binary.html)
> 
> <decimalSI>       ::= m | "" | k | M | G | T | P | E
> 
>   (Зверніть увагу, що 1024 = 1Ki, але 1000 = 1k; Не ми обирали капіталізацію.)
> 
> <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
> ```
> 
> Незалежно від того, яка з трьох форм експоненти використовується, жодна величина не може перевищувати 2^63-1 за абсолютним значенням, а також не може мати більше 3 знаків після коми. Числа, що перевищують ці межі або є точнішими, будуть обмежені або округлені в більшу сторону. (Наприклад: 0,1 м буде округлено до 1 м.) У майбутньому ці обмеження можуть бути розширені, якщо виникне потреба у більших або менших величинах.
> 
> Коли Quantity аналізується з рядка, воно запамʼятовує тип суфікса, який у нього був, і використовує той самий тип під час серіалізації.
> 
> Перед серіалізацією Quantity буде приведено до "канонічної форми". Це означає, що експонента/суфікс буде відрегульовано вгору або вниз (з відповідним збільшенням або зменшенням мантиси) таким чином:
> - Точність не буде втрачена
> - Дробові цифри не виводяться — показник ступеня (або суфікс) є максимально великим.
> Знак буде опущено, якщо число не відʼємне.
> 
> Приклади:
> 
> - 1.5 буде серіалізовано як "1500m"
> - 1.5Gi буде серіалізовано як "1536Mi"
> 
> Зверніть увагу, що величина НІКОЛИ не буде внутрішньо представлена як число з рухомою комою. Саме в цьому і полягає суть цього підходу.
> 
> Неканонічні значення все ще будуть розпізнаватися, якщо вони правильно сформовані, але будуть повторно виведені у своїй канонічній формі. (Тому завжди використовуйте канонічну форму або не порівнюйте їх.)
> 
> Цей формат розроблено з метою ускладнити використання цих чисел без написання спеціального коду для їх обробки, в надії, що це спонукає розробників також застосовувати реалізацію з фіксованою комою.

---

LLMS index: [llms.txt](/llms.txt)

---

`apiVersion: resource`

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

## Quantity {#Quantity}

Quantity — це представлення числа у форматі з фіксованою комою. Воно забезпечує зручну серіалізацію та десеріалізацію у форматах JSON та YAML, а також має доступ до String() та AsInt64().

Формат серіалізації такий:

```none
<quantity>        ::= <signedNumber><suffix>

  (Зверніть увагу, що <suffix> може бути порожнім, як у випадку з "" у <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

  (Міжнародна система одиниць; Див.: http://physics.nist.gov/cuu/Units/binary.html)

<decimalSI>       ::= m | "" | k | M | G | T | P | E

  (Зверніть увагу, що 1024 = 1Ki, але 1000 = 1k; Не ми обирали капіталізацію.)

<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
```

Незалежно від того, яка з трьох форм експоненти використовується, жодна величина не може перевищувати 2^63-1 за абсолютним значенням, а також не може мати більше 3 знаків після коми. Числа, що перевищують ці межі або є точнішими, будуть обмежені або округлені в більшу сторону. (Наприклад: 0,1 м буде округлено до 1 м.) У майбутньому ці обмеження можуть бути розширені, якщо виникне потреба у більших або менших величинах.

Коли Quantity аналізується з рядка, воно запамʼятовує тип суфікса, який у нього був, і використовує той самий тип під час серіалізації.

Перед серіалізацією Quantity буде приведено до "канонічної форми". Це означає, що експонента/суфікс буде відрегульовано вгору або вниз (з відповідним збільшенням або зменшенням мантиси) таким чином:

- Точність не буде втрачена
- Дробові цифри не виводяться — показник ступеня (або суфікс) є максимально великим.
Знак буде опущено, якщо число не відʼємне.

Приклади:

- 1.5 буде серіалізовано як "1500m"
- 1.5Gi буде серіалізовано як "1536Mi"

Зверніть увагу, що величина НІКОЛИ не буде внутрішньо представлена як число з рухомою комою. Саме в цьому і полягає суть цього підходу.

Неканонічні значення все ще будуть розпізнаватися, якщо вони правильно сформовані, але будуть повторно виведені у своїй канонічній формі. (Тому завжди використовуйте канонічну форму або не порівнюйте їх.)

Цей формат розроблено з метою ускладнити використання цих чисел без написання спеціального коду для їх обробки, в надії, що це спонукає розробників також застосовувати реалізацію з фіксованою комою.

---
