草庐IT

floating-point-conversion

全部标签

swift - 为什么 Swift 在整数文字上调用时找不到 Float 扩展方法?

我在Float上定义了一个名为printme的方法,当我尝试用整数文字调用它时,Swift找不到方法:extensionFloat{funcprintme(){print("value:\(self)")}}12.printme()//error:valueoftype'Int'hasnomember'printme'如果我使用显式强制转换,它会起作用:(12asFloat).printme()//prints"value:12.0"为什么,如果Float符合IntegerLiteralConvertible协议(protocol),12.printme()是否无法在Float上找到方

swift - 二元运算符 '*' 不能应用于类型 'Float' 和 'Float!' 的操作数

当我执行以下操作时:letgapDuration=Float(self.MONTHS)*Float(self.duration)*self.gapMonthly;我得到错误:Binaryoperator'*'cannotbeappliedtooperandsoftype'Float'and'Float!'但是当我这样做的时候:letgapDuration=12*Float(self.duration)*self.gapMonthly;一切正常。我不知道这个错误告诉我什么。self.gapMonthly是Float!类型,self.duration和self.MONTHS是类型Int!

swift - UITest 失败并出现错误 'ld: entry point (_main) undefined. for architecture x86_64'

我是Xcode和Swift的新手。我只是尝试使用swift语言创建UITest。当我尝试运行仅打印“Helloworld”的简单测试时,我发现此构建失败并出现错误::"ld:entrypoint(_main)undefined.forarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)"有人遇到同样的问题吗?如果您能分享修复方法,我将不胜感激。顺便说一句,我正在使用Xcode9.1和Swift4 最佳答案 修复步骤:选

ios - swift 1.2 "Cannot express tuple conversion"错误

这个方法在Swift的最后一个稳定版本中运行良好,但在Swift1.2中无法编译:finalfuncrotateBlocks(orientation:Orientation){ifletblockRowColumnTranslation:Array=blockRowColumnPositions[orientation]{for(idx,(columnDiff:Int,rowDiff:Int))inenumerate(blockRowColumnTranslation){blocks[idx].column=column+columnDiffblocks[idx].row=row+ro

ios - 在 iOS 应用程序中创建 float 菜单

希望在Swift中为我正在开发的iOS应用程序创建一个float菜单。如下图所示,沿着红色小圆圈菜单的线条。我最初的想法是扩展UIViewController类并在其中添加相应的绘图/逻辑,但是,该应用程序由一些其他Controller组成,更具体地说是UITableViewController,它本身扩展了UIViewController。也许有一个扩展的好地方吗?或者是否有更Eloquent方式在特定View上绘制菜单而无需大量重复菜单相关代码?菜单本身会显示在大多数屏幕上,因此我需要有选择地启用它。它还会根据用户当前所在的View/屏幕在某种程度上与上下文相关。有什么好主意吗?

swift - Swift 中的 Double vs Float80 速度

我听说x87FPU是用80位float工作的,所以即使我想用64位数字计算,它也会用80位计算然后转换。但在x86-64、Double或Float80(计算算术时)上,Swift中哪个最快? 最佳答案 虽然x87FPU确实以80位“扩展”精度在内部运行(至少,默认情况下;这是可定制的,实际上32位构建遵循macOSABI设置64位内部精度),针对x86-64的二进制文件不再使用x87FPU指令。所有实现64位长模式扩展的x86芯片也支持SSE2(事实上,这是AMD64规范所要求的),因此64位二进制文​​件始终可以假设支持SSE2。

ios - swift 3 : replace c style for-loop with float increment

我的应用程序中有这样一个循环:forvarhue=minHue;huehueIncrement是float,所以我不能像这样使用范围运算符:...在Swift3中实现这种循环的最佳和最巧妙的方法是什么? 最佳答案 你可以使用stride函数stride(through:,by:)..类似的东西forhuein(minHue).stride(through:maxHue,by:hueIncrement){//...}从Swift3.0开始,你可以使用stride(from:to:by:)或stride(from:through:by:

json - 无法将 NSNumber 桥接到 Float Swift 3.3

Xcode更新后我遇到了一个奇怪的问题。在我的应用程序中,当我从API获得响应时,我手动解析它并将其映射到我的模型。在我的代码中有很多地方我将JSON值转换为Float并进行空合并,如下所示:randomVariable=jsonDict["jsonKey"]as?Float??0它以前工作正常,但更新后,它总是默认为0。为了确定原因,我尝试将其强制转换为Float,如下所示randomVariable=jsonDict["jsonKey"]as!Float这导致了以下错误UnabletobridgeNSNumbertoFloat经过进一步调查,我发现Xcode使用的是Swift3.3

swift - Swift 中的高精度 float

如果double不够用,我该如何处理Swift中的float问题?是否有Java的BigDecimal的模拟? 最佳答案 Swift的Float80精度更高(但不是任意大)。http://swiftdoc.org/v2.0/type/Float80/ 关于swift-Swift中的高精度float,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/34232710/

swift - 如何删除 XCode9 "Conversion to swift 4 is available"警告?

我不得不手动转换我的项目,因为当我尝试使用迁移工具时Xcode会崩溃。现在完成了,我想从我的项目中删除警告。我看不到任何明显的方法来做到这一点,点击警告会立即使Xcode崩溃,这就是为什么我最终手动转换开始的原因。 最佳答案 当手动转换(不使用迁移工具)到Swift4时,请记住将项目设置设置为Swift4。(项目|build设置|Swift编译器-语言|Swift语言版本。)屏幕截图: 关于swift-如何删除XCode9"Conversiontoswift4isavailable"警告