【问题标题】:Math.Abs for difference of two ulong (unsigned long) values两个 ulong(无符号长)值之差的 Math.Abs
【发布时间】:2012-09-04 04:47:15
【问题描述】:

我正在寻找返回类型为 ulong 的 Math.Abs​​(ulong,ulong)。 但似乎微软只实现了 long、int 等。 还有另一种快速的方法吗?

对不起,需要更正:

Math.Abs(ulong - ulong)

所以它可能会变成负数,并且超出 long 的范围。

【问题讨论】:

  • 任何正数的绝对值都是同一个数。例如对于任何无符号值,没有 Math.Abs​​ 方法。

标签: c# .net math


【解决方案1】:

无符号长整型值始终为正,因为它们不包含符号。因此,Math.Absulong 毫无意义。


鉴于您的新问题,您可以使用:

ulong difference = first > second ? first-second : second-first;

这将为您提供两个值之间的差值,这实际上是您通过减去两个值得到的结果的绝对值,就好像它们已签名一样。

【讨论】:

  • 大声笑 .. 那一点完全超出了我的想象 :D 现在你提到它很明显;)
  • 对不起。是的,你完全正确,我纠正了我的问题。
  • 谢谢,是的,这就是我要找的。​​span>
【解决方案2】:

为了避免超出范围,我认为你想要这样的东西:

a > b ? a-b : b-a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2014-09-01
    • 2023-03-22
    • 2017-10-25
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多