您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Swift中的数学除法

Swift中的数学除法

您的代码正在执行整数除法,将整数结果转换为双精度。相反,您要将这些单个整数转换为双精度,然后进行除法。所以,代替

let result = (Double(myInt! / lutning) * Double(pi))

你应该

let result = Double(myInt!) / Double(lutning) * Double(pi)

注意,Double已经有一个.pi常量,因此您可以删除pi常量,并将以上内容简化为:

let result = Double(myInt!) / Double(lutning) * .pi

就个人而言,我会定义myIntlutningDouble从一开始去(而且,虽然我们在这删除所有强制解包的(用!)的自选的):

guard
    let text = graderna.text,
    let text2 = radien.text,
    let value = Double(text),
    let value2 = Double(text2)
else {
    return
}

let lutning: Double = 360
let result = value / lutning * .pi

或者,您可以flatMap用来安全地解开那些可选的字符串:

guard
    let value = graderna.text.flatMap({ Double($0) }),
    let value2 = radien.text.flatMap({ Double($0) })
else {
    return
}

let lutning: Double = 360
let result = value / lutning * .pi

(顺便说一句,如果要在弧度和度之间进行转换,则应为2π/ 360,而不是π/ 360。)

Swift 2022/1/1 18:16:10 有540人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶