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

如何在Swift中的int和float之间进行算术运算?

董高朗
2023-03-14
问题内容

这是我在Swift编程中的第一天,到现在为止,我们一直在使用ObjectiveC。喜欢,

var i = 10
var j = 10
var k = i + j
println(k)

但是,当我将其中一个值更改为float时,会出现错误。

var i = 10
var j = 10.4
var k = i + j
println(k)

错误:main.swift:13:11:找不到接受提供的参数的’+’的重载

现在,我进行了Google搜索,并尝试了一些尝试,例如Double(i+j),但是它不起作用。Swift在这种情况下应该将int隐式转换为float,不是吗?

如果我在理解Swift语言时遇到任何错误,请提出建议。


问题答案:

根据您想要的结果,应使用该类型的init方法将其转换为适当的类型。

例如。

var myInt = 5;
var myDouble = 3.4;

如果我想在结果中加倍

var doubleResult = Double(myInt) + myDouble;

如果我想要一个整数来代替,请注意双精度将被截断。

var intResult = myInt + Int(myDouble)

我在您的示例中看到的问题是,您正在尝试执行加法运算,然后将其转换,但是在执行加法运算之前,两个值必须相同。

苹果已经对其安静进行了严格的规定,以避免类型不匹配和转换错误。有时候对于来自其他语言的开发人员来说,这可能有点“过于严格”,一开始让我很烦,但是我已经习惯了。



 类似资料:
  • 我必须为图像中的所有像素添加一些常量值 - 对于灰色图像和彩色图像。但我不知道我该怎么做。我通过BufferedImage阅读图像,并且我正在尝试获取2d像素数组。我发现了类似BufferedImage.getRGB()的东西,但它返回奇怪的值(负值和巨大值)。如何为我的缓冲图像添加一些价值?

  • 问题内容: 我想将转换成斯威夫特。像这样的基本转换不起作用,因为这些类型不是基元,这与Objective-C中的s和s 不同 但这会产生以下错误消息: “浮点数”不可转换为“整数” 知道如何将属性从转换为吗? 问题答案: 您可以转换到斯威夫特这样的: 您还可以使用@paulm的注释来实现此结果:

  • 问题内容: 嗨,大家好,我只是python的新秀(即使在编程方面也是如此),所以我的问题听起来很基本,但我很难理解这一点。 为什么对“浮动对象”进行算术选择行为? 图像链接是我在本地jupyter笔记本中的运行结果: jupyter笔记本运行结果 赞赏有用的见解!谢谢 编辑050418 09:53-添加一个我认为是类似问题的链接 Numpy AttributeError:’float’对象没有属性

  • 问题内容: 我在csv文件中有一个日期列,说有这种格式的日期,我还有另外一列。在列中,我要填充紧接在日期列中提到的日期之后的日期。例如。如果date列具有日期,那么我想在Next_Day列中。 我们可以在excel中使用,但我不知道如何在Python中执行此操作。 请帮助我解决这个问题。 问题答案: 使用

  • 问题内容: 我最近注意到Java关于Java基本算术运算的特质。用下面的代码 我收到“类型不匹配”的编译错误… 都是基本的算术运算在Java中(,,,)只能对原始数据类型进行和高阶(,,等),而在算术运算和是第一投地,然后评估? 问题答案: 上的操作,并且被加宽到除非编译器可以确定该值的范围。 但 BTW即使发生溢出也会编译。:]

  • 问题内容: 对于以下代码,我的时间真的很奇怪: 内置浮球:4.9 s float64:10.5 s float32:45.0 s 为什么要慢两倍?为什么比float64慢5倍? 有什么方法可以避免使用的代价,并使函数返回内置而不是? 我发现使用速度比Python的float慢得多,甚至更慢(即使我使用的是32位计算机)。 在我的32位计算机上。因此,每次使用诸如的各种numpy函数时,我都会将结果