基本上,我需要做的是a-b,但是我不知道两者将是什么,如果a为正,那么我如何以“绝对”的方式从a取b?
例如,我的意思是A = 10和B =5。答案显然是5。如果A现在是-10,则答案现在是-5。无论数字是多少,答案都趋于0。如果可以的话,我非常想避免使用if语句。
我最初的想法是--(b *(b / abs(b)))。但是b可以为0,然后发生div by 0错误。
编辑:一种更好的说法是,我想用一个结果而不是数学来抵消结果。
答案 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)。