c# - 你能把两个数字相加吗,就好像它们是正数一样,即使它们可能是负数

标签 c#

大部分信息不需要回答我的问题,我把它包括在内,以防有人知道更简单的方法来做到这一点,我的问题在最后。

我有一个 X 和 Y 向量,我正在使用的是移动球的路径。当那个球撞到墙上时,比方说顶墙,它会朝负方向反弹,这很容易。但如果它撞到一堵有角度的墙,我可以很容易地计算出一个方向,我想把剩下的力加到另一个方向上。将其想象成乒乓球或迷你高尔夫。

例子。

一个球以 5,10 的速度行进,这意味着它每向右行进 5 个像素,就会向下行进 10 个像素。 当它到达底部时,我会将 Y 轴乘以 -1 使其变为 5,-10

但如果我以 45 度角击球,则部分力会转移到 X 方向。无论哪种方式。

问题: 我需要使 X+Y 总计为 15,如果其中之一为负数,我需要将其视为正数。

-10+5 = 15
-5+10 = 15  
 5+10 = 15
-5+-10 = 15

我知道我可以先将它们全部转换为正,然后再进行比较,但这看起来很笨重。

最佳答案

使用 Math.Abs​​ 函数将 -15 和 +15 都变成 +15:

var a = -10;
var b = 5;

Console.WriteLine(Math.Abs(a) + Math.Abs(b))

关于c# - 你能把两个数字相加吗,就好像它们是正数一样,即使它们可能是负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100272/

相关文章:

javascript - 将 ViewData 值从 Controller 传递到 View

c# - .NET 相当于 Java 的 TreeSet.floor 和 TreeSet.ceiling

c# - 从 SharePoint 2010 获取农场功能

c# - 通用克隆实例

c# - 如何转换Expression<Func<MyClass, int>>中的属性选择器?

c# - 从 C# 调用 .DLL 的奇怪问题

c# - Xamarin.Forms 中 ListView 的 ItemTapped 和 ItemSelected 事件有什么区别?

c# - 选择第一个记录每个组

c# - 建立上下文时如何设置连接超时 - PrincipalContext

c# - 无法使用 rabbitMQ 加载 System.Threading.Tasks.Extensions 4.2.0.0