Пространство значений для значения типа decimal64 YANG с дробными цифрами, установленными на 6, представляет собой действительные числа в следующем диапазоне: -9223372036854.775808..9223372036854.775807
. 34
, 34.1
, 34.001
, 34.004
, 34.00001
все находятся в этом диапазоне и, следовательно, являются допустимыми значениями.
Вот что говорится в RFC о встроенном типе decimal64 (RFC6020, раздел 9.3, p1< /а>):
Тип decimal64 представляет подмножество действительных чисел, которые могут быть представлены десятичными числами. Пространство значений decimal64 — это набор чисел, которые можно получить, умножив 64-битное целое число со знаком на отрицательную степень числа десять, т. е. выражаемое как «i x 10^-n», где i — целое число64, а n — целое число. от 1 до 18 включительно.
Таким образом, в основном, d x 10^f
, где d
— десятичное значение 64, а f
— дробные цифры, должно давать допустимое значение int64, которое диапазон от -9223372036854775808 до 9223372036854775807 включительно.
Вот как определяется цифра дроби (RFC6020, раздел 9.3.4, p1< /а>):
Оператор «fraction-digits», который является подоператором оператора «type», ДОЛЖЕН присутствовать, если тип «decimal64». В качестве аргумента принимает целое число от 1 до 18 включительно. Он контролирует размер минимальной разницы между значениями типа decimal64, ограничивая пространство значений числами, которые могут быть выражены как «i x 10^-n», где n — аргумент дробных цифр.
В следующей таблице перечислены минимальное и максимальное значение для каждого дробного числа:
+----------------+-----------------------+----------------------+
| fraction-digit | min | max |
+----------------+-----------------------+----------------------+
| 1 | -922337203685477580.8 | 922337203685477580.7 |
| 2 | -92233720368547758.08 | 92233720368547758.07 |
| 3 | -9223372036854775.808 | 9223372036854775.807 |
| 4 | -922337203685477.5808 | 922337203685477.5807 |
| 5 | -92233720368547.75808 | 92233720368547.75807 |
| 6 | -9223372036854.775808 | 9223372036854.775807 |
| 7 | -922337203685.4775808 | 922337203685.4775807 |
| 8 | -92233720368.54775808 | 92233720368.54775807 |
| 9 | -9223372036.854775808 | 9223372036.854775807 |
| 10 | -922337203.6854775808 | 922337203.6854775807 |
| 11 | -92233720.36854775808 | 92233720.36854775807 |
| 12 | -9223372.036854775808 | 9223372.036854775807 |
| 13 | -922337.2036854775808 | 922337.2036854775807 |
| 14 | -92233.72036854775808 | 92233.72036854775807 |
| 15 | -9223.372036854775808 | 9223.372036854775807 |
| 16 | -922.3372036854775808 | 922.3372036854775807 |
| 17 | -92.23372036854775808 | 92.23372036854775807 |
| 18 | -9.223372036854775808 | 9.223372036854775807 |
+----------------+-----------------------+----------------------+
Инструмент, который вы используете, неправильный. Следующее допустимо YANG:
typedef foobar {
type decimal64 {
fraction-digits 6;
range "-90.000000..90.000000";
}
default 34.00001;
}
YANG 1.1 (RFC7950) не изменил этот аспект языка (тот же применяется).
person
predi
schedule
11.07.2019