英文:
how to convert float to decimal in swift
问题
在Swift中,您可以如何将浮点值转换为十进制值,然后再添加两个变量?我遇到了一个错误:error: no exact matches in call to initializer
。以下是代码示例:
let decimalValue: Decimal = 2.0
let floatValue: Float = 12.00
let sum = Decimal(floatValue) + decimalValue /// error: no exact matches in call to initializer
print(sum)
请注意,这段代码中的错误是由于Decimal
的初始化方法没有与Float
类型的参数匹配。要解决这个问题,您可以使用NSDecimalNumber
类来进行转换和计算。以下是修改后的代码示例:
let decimalValue: Decimal = 2.0
let floatValue: Float = 12.00
let decimalNumber = NSDecimalNumber(value: floatValue)
let sum = decimalNumber.decimalValue + decimalValue
print(sum)
这样,您就可以将Float
值转换为Decimal
值,并成功进行加法运算。
英文:
In swift, how can I convert float value to decimal value and then add 2 variable? I have
error: no exact matches in call to initializer
let decimalValue: Decimal = 2.0
let floatValue: Float = 12.00
let sum = Decimal(floatValue) + decimalValue /// error: no exact matches in call to initializer
print(sum)
答案1
得分: 4
文档显示没有接受Float
类型的初始化器。只有init(_ value: Double)
和init(floatLiteral value: Double)
两个选项。
你有两个合理的选择:
-
将
floatValue
隐式声明为Double
let decimalValue: Decimal = 2.0 let floatValue = 12.00 // <- 推断为Double类型 let sum = Decimal(floatValue) + decimalValue
-
调用
init(_ value: Double)
let decimalValue: Decimal = 2.0 let floatValue : Float = 12.00 let sum = Decimal(Double(floatValue)) + decimalValue
英文:
The documentation reveals that there is no initializer which accepts a Float
. There are only init(_ value: Double)
and init(floatLiteral value: Double)
You have two reasonable options:
-
Declare
floatValue
implicit asDouble
let decimalValue: Decimal = 2.0 let floatValue = 12.00 // <- inferred as Double let sum = Decimal(floatValue) + decimalValue
-
Call
init(_ value: Double)
let decimalValue: Decimal = 2.0 let floatValue : Float = 12.00 let sum = Decimal(Double(floatValue)) + decimalValue
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论