import Foundation
var x = 17.0
var y = 1.0
var z = 0.5
var isSq : Bool = true
y = ((sqrt(x)) - Int(sqrt(x)))
我正在使用 Xcode 6.4
最后一行产生错误:“无法找到接受所提供参数的‘-’重载”。
很高兴了解这里发生的事情,还有一个函数只返回 double 变量的小数部分 - Int() 的补充吗?
非常感谢
最佳答案
sqrt(x)
的类型为 Double
,而 Int(sqrt(x))
的类型为
整数
。 Swift 中没有使用 Double
作为减号运算符
左操作数和 Int
作为右操作数,
并且 Swift 不会在类型之间隐式转换。
因此您必须再次将 Int
转换为 Double
:
let y = sqrt(x) - Double(Int(sqrt(x)))
您还可以使用 fmod()
函数提取小数部分:
let y = fmod(sqrt(x), 1.0)
关于swift - 关于 Swift (1.2) 变量的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434552/