我已经看过将int转换为浮点数和其他类似答案的答案,但它们并没有完全符合我的要求.
我正在尝试创建一个基本程序,它使一个数字对它进行一些不同的计算,并将这些计算的结果加在一起.
对于其中一个计算,我创建了一个分段控制器,下面有3个不同的值
var myValues: [Double] = [0.00, 1.00, 1.50]
var myValue = [myValuesSegmentedController.selectedSegmentIndex]
Run Code Online (Sandbox Code Playgroud)
然后当选择其中一个值时,它会被添加到最终值.所有加在一起的值是双精度到2位小数.
var totalAmount = valueA + valueB + valueC + myValue
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,swift不会让我在最后的计算中添加"myValue".它给了我错误:
Swift Compiler Error. Cannot invoke '+' with an argument list of type '($T7, @lvalue [int])'
Run Code Online (Sandbox Code Playgroud)
要将该值更改为Double,我需要做什么?或者我该怎么做才能获得类似的结果?
Ama*_*dan 33
你可以Double()像这样投射它
var totalAmount = valueA + valueB + valueC + Double(myValue)
Run Code Online (Sandbox Code Playgroud)
问题是您正在尝试添加一个数组而不是 Int,因此您甚至不需要转换任何内容,考虑到您的所有值都已经是 Doubles 并且您的索引实际上必须是 Int。所以
let myValues = [0.00, 1.00, 1.50]
let myValue = [myValuesSegmentedController.selectedSegmentIndex] // your mistake is here, you are creating one array of integers with only one element(your index)
Run Code Online (Sandbox Code Playgroud)
正确的应该是这样的:
let myValues = [0.00, 1.00, 1.50]
let totalAmount = myValues.reduce(0, combine: +) + myValues[myValuesSegmentedController.selectedSegmentIndex]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30579 次 |
| 最近记录: |