Итак, правильно ли я понимаю, что независимо от значения A вы хотите, чтобы оно смещалось к нулю (на основе начального значения A) на значение B?
Так дано:
A = 10 и B = 5, результат будет 5.
A = -10 и B = 5, результат будет -5.
A = -5 и B = -10, результат будет 5 (потому что он смещен на 10, в направлении нуля от начальной точки -5).
Фактически знак B не имеет значения, поскольку во всех случаях он указывает на смещение к нулю.
Что в случае, когда A = 0 и B не равен нулю? Предполагается, что результат не определен (потому что не может быть выведено соответствующее направление смещения) или он равен нулю?
Формула для последнего случая будет (ABS(A) - ABS(B)) * SIGN(A))
(при условии, что знаковая функция возвращает 0, когда A равно нулю).