arduino / arduino/ArduinoCore-API

map() for float data type

Offen
#71 18 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
306
Forks
150
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, den vorhandenen Einstiegspunkt map() in ArduinoCore-API zu finden und zu prüfen, wie er numerische Eingaben und Ausgaben verarbeitet. Als abgeschlossen gilt die Arbeit, wenn eine float-spezifische Mapping-API bei float-Argumenten die Nachkommastellen erhält und das Verhalten von map() unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
api
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.