将一个数字的标志传递给另一个号码?

Hap*_*ing 1 c# math

我正在寻找一种简洁的方法来取一个数字的符号(积极性或消极性),并将其传递给另一个数字.

例如:

我们给出两个数字,第一个是整数1,第二个是未知的,直到执行时间.
如果未知数小于0,则我们的数字变为-1.
如果未知数大于或等于0,则我们的数字变为1.

如果我们的未知数字是X:


在此输入图像描述

作为代码:

int before = AnyNonzeroInt(); //for this example we will choose 1.
int X = rand(Int32.Min, Int32.Max);
int after = ...
Run Code Online (Sandbox Code Playgroud)

我个人使用C#4.5,但我相信一个好的解决方案是与语言无关的.

我可以想到几种方法,但都涉及if-else-case语句或三元运算符.我想要一种数学方法来做到这一点.

EDITS:

我对三元运营商没有厌恶.但是,我正在处理的代码库有一组代码指南,不允许使用三元运算符,因为它们会使代码变得更复杂(我知道我知道......我没有制定这个规则).

但是,我相信我会接受这个问题,以及它对下一次团队会议的回答,这样我就可以证明我认为三元运营商是多么必要.

Fly*_*g57 5

var after = (X < 0) ? -1 : 1;
Run Code Online (Sandbox Code Playgroud)

这比分部便宜,你的意图也更清楚