caa*_*042 1 negative-number modulus swift
let num = 32.0
Double(num).remainder(dividingBy: 12.0)
Run Code Online (Sandbox Code Playgroud)
我得到 -4?...而不是 8.0...它从 8.0 中减去 12.0
我该如何解决?
请仔细阅读文档:
对于两个有限值 x 和 y,x 除以 y 的余数 r 满足 x == y * q + r,其中 q 是最接近x / y的整数。如果 x / y 正好位于两个整数的中间,则选择 q 为偶数。请注意,q 不是在浮点算术中计算的 x / y,并且 q 可能无法用任何可用的整数类型表示。
(强调我的)
你想使用truncatingRemainder(dividingBy:)代替:
let num = 32.0
let value = Double(num)
.truncatingRemainder(dividingBy: 12)
print(value) // 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |