如何"absolute-ly"取一个数? (如何抵消一个数字?)

How to "absolute-ly" take from a number? (How to offset a number?)

基本上我需要做的是 a - b,但我不知道其中任何一个是什么,如果 a 是正数,那么我如何以 "absolute" 的方式从 a 中获取 b?

我的意思是,例如 A = 10 和 B = 5。答案显然是 5。如果 A 现在是 -10,那么答案现在是 -5。无论数字是多少,答案都倾向于 0。如果可以的话,我非常想避免使用 if 语句。

我最初的想法是a - (b * (b / abs(b)))。但是b可以为0,然后div by 0就会出现错误

编辑:更好的说法是我想用一个数量而不是数学来抵消结果。

那么我是否理解正确,无论 A 的值是多少,您都希望它通过 B 的值(基于 A 的初始值)偏向零?

因此给出: A=10 和 B=5,结果将是 5。 A=-10 和 B=5,结果将为 -5。 A=-5 和 B=-10,结果将是 5(因为它偏移了 10,从 -5 的起点向零)。

实际上 B 的符号是无关紧要的,因为它在所有情况下都指定了一个朝向零的偏移量。

A​​=0 且 B 为 non-zero 的情况呢?结果应该是未定义的(因为无法推断出适当的偏移方向),还是应该为零?

后一种情况的公式为 (ABS(A) - ABS(B)) * SIGN(A))(假设当 A 为零时符号函数 returns 0)。