如何"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)。
基本上我需要做的是 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)。