我正在使用 Golang 用 tinygo 編寫 arduino uno。我正在嘗試映射兩個值范圍。一個是編碼器,范圍在 0-1000 之間,另一個是 tinygo 的 ADC 范圍在 0-65535 之間。我正在讀取 ADC 范圍,需要將其轉換為 0-1000(編碼器)的范圍。我已經嘗試了幾件事,但我遇到的基本問題是數據類型。例如,以下公式等于 0:var encoderValue uint16 = 35000float := float64(1000/65535) * float(encoderValue)
1 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
1000/65535是一個整數除法,將導致0. 如果將結果轉換為 沒關系float64,那么它將是0.0。
使用浮點常量:
var encoderValue uint16 = 35000
x := float64(1000.0/65535) * float64(encoderValue)
fmt.Println(x)
這將輸出(在Go Playground上嘗試):
534.0657663843748
- 1 回答
- 0 關注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消