作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
似乎 Swift 中的整数除法向零舍入而不是向较小的数字舍入。这意味着,例如,-1/2
将是 0 而不是 -1。
有没有办法告诉 Swift 向较小的数字舍入?我知道如何“模拟”它,但如果有本地解决方案,我宁愿使用它。
最佳答案
您可以像这样定义自己的运算符:
infix operator </> { associativity left }
func </> (a: Int, b: Int) -> Int {
return Int(floor(Double(a) / Double(b)))
}
这样您就不必输入那个荒谬的表达式了。我提议</>
,当然您也可以选择自己的。
如果您不喜欢创建运算符,那么可以将其用作普通函数:
func div (a: Int, b: Int) -> Int {
return Int(floor(Double(a) / Double(b)))
}
最后,但我个人不会使用它,您可以重新定义除法运算符:
func / (a: Int, b: Int) -> Int {
return Int(floor(Double(a) / Double(b)))
}
在这种情况下,它会应用于所有部门——不过要注意副作用
关于swift - 向负无穷大舍入负整数商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860268/
我是一名优秀的程序员,十分优秀!