Вокруг к самому близкому целому числу со связями, округляющимися к самому близкому даже целое число
y = convergent(a)
y = convergent(x)
y = convergent(a)
объект fi
раундов a
к самому близкому целому числу. В случае связи convergent(a)
округляет к самому близкому даже целое число.
y
и a
имеют тот же объект fimath
и свойство DataType
.
Когда свойством DataType
a
является single
, double
или boolean
, numerictype
y
совпадает с numerictype a
.
Когда дробная длина a
является нулем или отрицательный, a
уже является целым числом, и numerictype
y
совпадает с numerictype a
.
Когда дробная длина a
положительна, дробной длиной y
является 0
, его знак совпадает со знаком a
, и его размер слова является различием между размером слова и дробной длиной a
плюс один бит. Если a
подписывается, то минимальным размером слова y
является 2
. Если a
без знака, то минимальным размером слова y
является 1
.
Для комплексных объектов fi
мнимые и действительные части округлены независимо.
convergent
не поддерживает объекты fi
с нетривиальным наклоном и масштабированием смещения. Масштабирование наклона и смещения тривиально, когда наклон является целочисленной степенью 2, и смещение 0.
y = convergent(x)
округляет элементы x
к самому близкому целому числу. В случае связи convergent(x)
округляет к самому близкому даже целое число.
Следующий пример демонстрирует, как функция convergent
влияет на свойства numerictype
объекта fi
со знаком с размером слова 8 и дробной длиной 3.
a = fi(pi, 1, 8, 3) a = 3.1250 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 3 y = convergent(a) y = 3 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 6 FractionLength: 0
Следующий пример демонстрирует, как функция convergent
влияет на свойства numerictype
объекта fi
со знаком с размером слова 8 и дробной длиной 12.
a = fi(0.025,1,8,12) a = 0.0249 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 12 y = convergent(a) y = 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 2 FractionLength: 0
convergent
функций, nearest
и round
отличаются по способу, которым они обрабатывают значения, младшая значащая цифра которых равняется 5:
Функция convergent
округляет связи с самым близким даже целое число
Функция nearest
округляет связи с самым близким целым числом к положительной бесконечности
Функция round
округляет связи с самым близким целым числом с большим абсолютным значением
Следующая таблица иллюстрирует эти различия для данного объекта fi
a
.
a | конвергентный (a) | самый близкий (a) | раунд (a) |
---|---|---|---|
–3.5 | –4 | –3 | –4 |
–2.5 | –2 | –2 | –3 |
–1.5 | –2 | –1 | –2 |
–0.5 | 0 | 0 | –1 |
0.5 | 0 | 1 | 1 |
1.5 | 2 | 2 | 2 |
2.5 | 2 | 3 | 3 |
3.5 | 4 | 4 | 4 |