c# - 将一个数字的符号赋予另一个数字?
问题描述
我正在寻找一种简洁的方法来获取一个数字的符号(正或负),并将其传递给另一个数字。
例如:
我们得到两个数字,第一个是整数 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 = ...
我个人使用的是 C# 4.5,但我相信一个好的解决方案是与语言无关的。
我可以想到几种方法,但都涉及 if-else-case 语句或三元运算符。我想要一种数学方法。
编辑:
我对三元运算符没有反感。但是,我正在处理的代码库有一组代码指南,不允许使用三元运算符,因为它们被认为会使代码更复杂(我知道我知道......我没有制定这个规则)。
但是,我确实相信我会在下一次团队会议上回答这个问题以及它的答案,这样我就可以表明我认为三元运算符是多么必要。
解决方案
var after = (X < 0) ? -1 : 1;
这比一个部门便宜,你的意图也更清楚
推荐阅读
- google-bigquery - Bigquery:如何创建表以接受同一列上的字节和字符串?
- c++ - 局部变量初始化行为 C++
- class - 如何板条箱顶类 Salesforce
- css - 通过样式化组件的 id 属性设置布局的最佳实践
- javascript - 数组的输出不正确添加了额外的字母
- node.js - 尝试 npm 链接并在之后运行包但抛出错误“没有这样的文件”
- wordpress - 如何在 Woocommerce 产品类别页面中调整侧边栏的位置
- flutter - mockObserver.didPush 不能在 didPush 中使用任何类型
- makefile - 在带有参数的循环中调用 Make 目标
- python - 当您遇到信任问题时,Excel“另存为”功能到 xlsx