swift - 关于 Swift (1.2) 变量的基本问题

标签 swift

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/

相关文章:

ios - 使用 PHFetchOptions 获取 Landscape Only PHAssets

ios - 在 Swift 中从 ViewController 更改 UIView 变量

ios - 获取注释图钉点击事件 MapKit Swift

ios - 如何检查 UITextField 何时发生变化?

ios - 即使应用程序未运行,网络扩展也可监控 WiFi 网络变化

ios - 指数收缩 SKNode

ios - 无法在 Objective-C 中使用 Swift 类

swift - 类型 'NSFetchRequest' 的值没有成员 'performFetch'

ios - 简单的 swift 变量到 rxswift observable

swift - 如何快速消除 View ? missViewControllerAnimated 没有做任何事情?