我try 用以下代码将十进制转换为整数:

Int(pow(Decimal(size), 2) - 1) 

但我得到:

.swift:254:43: Cannot invoke initializer for type 'Int' with an argument list of type '(Decimal)' 

在这里,我知道pow返回Decimal,但似乎Int没有构造函数和成员函数来将Decimal转换为Int

推荐答案

这是我最新的答案(感谢Martin R和OP的 comments ).OP的问题是从结果中减go 1后,将pow(x: Decimal,y: Int) -> Decimal函数转换为整数.在SO post for NSDecimalApple's documentation on Decimal的帮助下,我已经回答了这个问题.您必须将结果转换为NSDecimalNumber,然后再将其转换为Int:

let size = Decimal(2)
let test = pow(size, 2) - 1
let result = NSDecimalNumber(decimal: test)
print(Int(result)) // testing the cast to Int

Swift相关问答推荐

为什么Swift在某些链调用中不能对不可变值使用变异成员,而在其他链调用中则不能使用变异成员?

MyApp类型不符合协议App''''

带有文本输入自动大小写修饰符的SwiftUI Textfield问题

如何在SWIFT中使用DiscardingTaskGroup获得任务结果

为什么 Swift URL 的 init?(string: String,relativeTo: URL?) 仅添加协议?

Swift数据关系

有没有一种方法可以访问封闭实例ObservableObject以从属性包装器中的任何位置调用objectWillChange.send()

使用 Async-Await 和 Vapor-Fluent 创建 CRUD 函数 - Swift 5.6

如何制作具有 2 个视图的 3D 旋转动画?

在 macOS (Swift) 上获取 BSD 驱动器名称的最佳方法是什么?

当使用 CGFloat 而不是数字文字时,为什么 node 的位置会发生变化?

试图同时实现两个混合过渡

如何仅将 SwiftUI 不透明度应用于父视图?

如何自己快速编写 Hashable 协议

为 UIActivityViewController Swift 设置不同的活动项

Swift中switch 盒的详尽条件

DispatchQueue:不能在非主线程上使用 asCopy = NO 调用

Alamofire:如何全局处理错误

swift 3 如何获取明天和昨天的日期(注意特殊情况)新月或新年

如何快速从另一个视图控制器重新加载表格视图