将float64数组转换为float32数组

时间:2018-12-20 15:54:37

标签: arrays go type-conversion

我有一个float64数组,想将每个值转换为float32。

我尝试过:

# What I have 
features64 [120]float64

# What I've tried
features32 = [120]float32(features64)

但这会导致编译错误:

  

无法将要素([120] float64类型)转换为[120] float32类型

3 个答案:

答案 0 :(得分:2)

您不能将一种切片/数组类型转换为另一种。您需要创建一个新数组,并在转换每个元素的原始数组上进行迭代:

for i,f := range features64 {
    features32[i] = float32(f)
}

答案 1 :(得分:1)

简单

var arr1 [120]float64
var arr2 [120]float32
for i, v := range arr1 {
    arr2[i] = float32(v)
}

答案 2 :(得分:1)

例如,

package main

func main() {
    var features64 [120]float64

    var features32 [len(features64)]float32
    for i, f64 := range features64 {
        features32[i] = float32(f64)
    }
}