Math 转到uint8到浮动32

Math 转到uint8到浮动32,math,go,Math,Go,我正在尝试学习如何使用雨强度工具。 对于该工具,我必须进行如下计算: var intensity float32 intensity = 10^((value−109)÷32) 该值是一个uint8,范围从0到255。强度变量是一个浮动 然而,Go告诉我 无法将10^(值-109)/32(类型uint8)用作赋值中的float32类型 我怎样才能解决这个问题 Go中没有÷运算符,^是位异或,您需要使用math软件包中的Pow函数 Go对类型转换非常严格,因此在许多情况下不允许隐式类型转换(因此

我正在尝试学习如何使用雨强度工具。 对于该工具,我必须进行如下计算:

var intensity float32
intensity = 10^((value−109)÷32)
该值是一个
uint8
,范围从0到255。强度变量是一个浮动

然而,Go告诉我

无法将10^(值-109)/32(类型uint8)用作赋值中的float32类型

我怎样才能解决这个问题

  • Go中没有
    ÷
    运算符,
    ^
    是位异或,您需要使用
    math
    软件包中的
    Pow
    函数
  • Go对类型转换非常严格,因此在许多情况下不允许隐式类型转换(因此无符号整数到浮点无效),因此需要使用
    type(expr)
    显式转换,即
    float32(1)
  • 也就是说:

    intensity = float32(math.Pow(10, float64((value - 109) / 32)))
    // - OR -
    intensity = float32(math.Pow10(int((value - 109) / 32)))
    

    首先需要显式转换,即
    math.Pow(10,float32(值−109)/32)
    谢谢您,在更改了一个括号后,您的示例对我来说非常有效
    math.Pow(10,(float64(value)-109)/32)