如何“绝对”地取数字? (如何抵消数字?)

时间:2019-05-18 19:26:05

标签: gdscript

基本上,我需要做的是a-b,但是我不知道两者将是什么,如果a为正,那么我如何以“绝对”的方式从a取b?

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

我最初的想法是--(b *(b / abs(b)))。但是b可以为0,然后发生div by 0错误。

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

1 个答案:

答案 0 :(得分: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)。