arduino / arduino/ArduinoCore-API
map() for float data type
- 主要言語
- C++
- スター
- 306
- フォーク
- 150
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
If a `float` argument is passed to the `map()` function, it truncates them to integer values. This provides erroneous output that may not be immediately noticed. This does not produce a compiler warning.
Please add a `float` variant of `map()`:
```cpp
float mapf(float value, float istart, float istop, float ostart, float ostop) {
return ostart + (ostop - ostart) * ((value - istart) / (istop - istart));
}
```
### Additional context
#### Additional reports
- https://dicks-photon-arduino.blogspot.com/2016/05/40-arduino-c-map-function-vs.html
#### Related
- https://github.com/arduino/Arduino/issues/288
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず ArduinoCore-API にある既存の map() エントリーポイントを見つけ、数値の入力と出力をどのように処理しているかを確認します。float 専用のマッピング API が float 引数の小数値を保持し、既存の map() の動作を変更しなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- api
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100