openlang

Swift 把整数变成正数

整数能转换成它的绝对值吗?

比如下面这样

  -7  
  to  
   7

我已经试过 UInt(),以为它会把 Int 转成无符号值,但没有成功。

从英语翻译查看原文

后续讨论 4

顺着彼此的依据读下去
  1. 固定链接

    在 Swift 5 中,可以用下面两种方法之一把整数转成它的绝对值。

    #1. 通过 magnitude 属性取得 Int 的绝对值

    Int 类型提供了 magnitude (https://developer.apple.com/documentation/swift/int/2886869-magnitude)。这个属性的声明如下。

      var magnitude: UInt { get }

    对于数字输入 x,x.magnitude 的值就是 x 的绝对值。

    下面的例子通过 magnitude 属性取得 Int 实例的绝对值。

      let input = -4
      print(input.magnitude) // prints: 4

    #2. 通过 abs(_:) 方法取得 Int 的绝对值

    Swift 有一个名为 abs(_:) (https://developer.apple.com/documentation/swift/2885649-abs) 的全局数字函数。它的方法声明如下。

      func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric

    返回所给数字的绝对值。

    下面的例子调用全局 abs(_:) 函数取得 Int 实例的绝对值。

      let input = -4
      print(abs(input)) // prints: 4
    从英语翻译查看原文
  2. 固定链接

    要取得 double 或 Int 的绝对值,可以调用 fabs 函数。

      var sample = -14.28
      print(fabs(sample)) // 14.28
      sample = -9
      print(fabs(sample)) // 9
    从英语翻译查看原文

同一个问题的其他角度

  1. 把一小段 MATLAB 脚本移植到 R,结果有一个变成了矩阵

    大家好。我在把同事(Priyesh,2023 年)的一小段 MATLAB 脚本移植到 R,因为我们其余的管道都是 R,而我几乎没碰过 MATLAB。R 版本能从头跑到尾,没有报错也没有警告,但数字和他保存的日志对不上。 MATLAB 原版如下。 我写…

    回复 2最近活动 rmatlab
  2. 冷柜读数为零却报告状态 "ok",我漏了什么

    我的夜间审计脚本(Rscript,base R)会标出峰值温度超过上限的冰柜。昨晚 U-03 的记录仪被拔掉了,所以导出文件里它的 temp_c 全是字符串 ERR。报告里 U-03 仍然显示 ok。没有人收到告警。打印出来的表里,这台设备的 n_v…

    回复 2最近活动 r
  3. 一个每次分配一列的循环

    Julia 里切片是会复制的,这我知道,结果在循环里又忘了。有个函数遍历矩阵的各列,对各列做 s += sum(A[:, j]),每个 j 一次。每个 A[:, j] 都会新建一个向量,求完和就扔掉。@time 显示分配量随列数增长,而性能提示里说,…

    回复 2最近活动 julia