Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 若数字为负数则减去,若数字为正数则相加_C#_Math - Fatal编程技术网

C# 若数字为负数则减去,若数字为正数则相加

C# 若数字为负数则减去,若数字为正数则相加,c#,math,C#,Math,如果是

如果是
<0
,我想从
Vector3 diff
x
z
中删除10,如果
=0
则添加10。有更好的方法吗

            if (diff.x < 0)
                diff.x -= 10;
            else if (diff.x >= 0)
                diff.x += 10;
            if (diff.z < 0)
                diff.z -= 10;
            else if (diff.z >= 0)
                diff.z += 10;
if(差x<0)
差值x-=10;
如果(差异x>=0),则为else
差值x+=10;
如果(差值z<0)
差值z-=10;
如果(差异z>=0),则为else
微分z+=10;

您可以使用条件运算符仅对x和z进行一次比较。同样,人们对简洁性、可读性等有很多不同的看法

diff.x+=(diff.x<0?-10:10);
微分z+=(微分z<0?-10:10);

如果您的数字是双倍的,您可以使用Math.CopySign。复制符号(x,y)的大小为x,符号为y

diff.x += Math.CopySign( 10, diff.x);
diff.z += Math.CopySign( 10, diff.z);