当前位置: 首页 > 面试题库 >

Swift中的数学除法

穆正祥
2023-03-14
问题内容

我正在尝试使用不同的方程式和公式制作一个数学应用程序,但是我试图圈出一个扇形,但是我只是想尝试将输入值除以360,但是当我这样做时,除非值超过360,否则它只会显示0。我试过使用String,Double和Float,但没有运气,我不知道我在做什么是错误的,但是下面是代码。我很感谢您的帮助,但是我已经坐了一会儿,并且在网上搜索了答案,但是没有结果,这可能是我搜索错误的结果。

if graderna.text == ""{
        }
        else{
            var myInt: Int? = Int(graderna.text!)    // conversion of string to Int
            var myInt2: Int? = Int(radien.text!)
            let pi = 3.1415926
            let lutning = 360


            let result = (Double(myInt! / lutning) * Double(pi))
            svar2.text = "\(result)"
        }

问题答案:

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

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语言中的函数学习教程,包括了Swift语言中的函数学习教程的使用技巧和注意事项,需要的朋友参考一下 函数是一个组织在一起语句集合,以执行特定任务。Swift 函数类似于简单 C 函数以及复杂的 Objective C 语言函数。 它使我们能够通过函数调用内部的局部和全局参数值。 像其他任何语言一样 swift 函数也遵循相同的步骤。 函数声明:它告诉编译器有关的函数的名称,

  • 问题内容: 我试图找到一种 在我的Swift代码中包含PI常量 的方法。我已经在另一个答案中找到了帮助,据我所知,我可以使用 C函数 。 我还签入了包裹,并遇到了以下声明: 所以,我假设有一种在代码中使用PI的方法,我只是不知道 如何 … 问题答案: 在 Swift 3和4中 ,pi现在被定义为浮点数类型,和的静态变量,因此不再需要特定的导入: 另请注意,编译器可以推断的实际类型。因此,在从上下文

  • 问题内容: 在我的tableViewController中,我有以下内容。我正在尝试删除一个项目。 然后尝试删除我有。 问题答案: 通过在swift和coredata中执行数据删除来更新我的编码问题。这最终使我的代码起作用了。 上面针对Swift 2.2和Xcode 7.3.1的编辑 还需要对这两行代码进行更正。

  • 问题内容: 如今,在Swift中,您只需键入 以使数组唯一。(或根据需要订购)。 在此之前,它是怎么做的? 我可能有一个如下所示的数组: 或者,实际上,是数据的相似类型部分的任何序列。我要做的是确保每个相同元素中只有一个。例如,上面的数组将变为: 请注意,删除了2、6和15的重复项以确保每个相同元素中只有一个。Swift是否提供一种轻松实现此目的的方法,还是我必须自己做? 问题答案: 您可以自己滚

  • 问题内容: 在我的应用程序中,选择单元格时在数组中添加了一个对象,重新选择单元格时取消选择并删除了对象。我使用了该代码,但给了我错误。 它给了我2像这样的错误: 问题答案: 雨燕等同的是: 如果对象是唯一的 。完全没有必要强制使用 该API 也可以使用,但这会导致不必要的隐式桥强制转换为。 如果同一对象多次出现,请使用。但是,在像数据源数组这样的情况下,将索引与特定对象相关联的情况是可取的,因为它

  • 我正试图排除某个特定目标的Swift文件的某些部分。然而,我没有找到#ifndef objective-c指令的任何替代,而且,如果我使用这种形式: 预处理器完全忽略指令并尝试编译TriggerActiveLocationUpdate。请注意#if taxi_coops指令在同一文件的其他部分中得到了遵守。 有没有什么方法可以简单地排除Swift中的一些代码和/或为什么我的修复不起作用?