перемасштабирование диапазонов

Проблема состоит в основном в том, что двойной/плавающий поддерживаются в аппаратных средствах, в то время как Десятичное число и т.п. не. Т.е. необходимо выбрать между скоростью + ограниченная точность и большей точностью + более плохая производительность.

7
задан Welbog 21 September 2009 в 18:32
поделиться

1 ответ

То, что вы описываете, называется линейной интерполяцией .

В общем случае предположим, что у вас есть значение c между a и b , и вам нужно значение x между 0 и 1, которое основано на относительном положении c между a и b . Уравнение для x выглядит следующим образом:

x := (c - a) / (b - a)

Итак, если у вас есть значение от 10 до 15 (скажем, 11), и вам нужно значение от 0 до 1, вы вводите значения в уравнение выше:

x := (11 - 10) / (15 - 10)
x := 1/5

Другими словами, 11 составляет пятую часть пути от 10 до 15.

28
ответ дан 6 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: