将float64数组转换为float32数组。

4

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

我尝试过:

# What I have 
features64 [120]float64

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

但是这会导致编译错误:
无法将特征(类型[120]float64)转换为类型[120]float32。
3个回答

3

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

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

3
例如,
package main

func main() {
    var features64 [120]float64

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

2

简单地说

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接