2

基本上我需要做的是a - b,但我不知道两者都会是什么,如果a是积极的,那么我怎样才能以“绝对”的方式从a中获取b?

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

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

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

4

1 回答 1

0

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

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

实际上,B 的符号并不重要,因为它在所有情况下都指定了向零的偏移量。

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

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

于 2019-05-18T19:50:39.153 回答