【发布时间】:2019-05-14 16:01:49
【问题描述】:
我正在制作自己的特定图形框架,但在处理一些简单的余数 if 语句时遇到了麻烦。
我希望 X 轴是对数的。每次用户平移图表时,它都会通过 translation.x 量更改 X-Min 和 X-Max 值。
我有以下代码
for i in Int(xMin)...Int(xMax) {
let logValue = Double(log10(Float(i)))
let rounded = logValue.rounded(toPlaces:3)
if rounded.truncatingRemainder(dividingBy: 0.1) == 0 {
//Draw division line
print("Got Here")
}
}
extension Double {
/// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
如果我在代码中设置断点,我可以看到如果舍入的值为 1.3,则代码永远不会到达打印行。如果我手动输入四舍五入的值是 100,那么打印线永远不会到达。
到目前为止,我对整数使用 % 余数运算符没有任何问题,但是无法弄清楚我哪里出错了。
【问题讨论】:
标签: swift double rounding division