Hallo Leute,
folgendes Problem:
Ein microcontrollerbasiertes Subsystem mit einer BCD-Arithmetik mit 8-Stellen Genauigkeit (-1E-128..1E+128) wird via serieller Schnittstelle mit Daten "gefüttert".
Da der Wertebereich "Float" nicht ausreicht wird nur "Double" verwendet.
Die Umwandlung der Zahlen findet mit "StrD(<Zahl>, 8 )" statt.
Hierbei werden aber alle Zahlen in diesem Format übertragen was zu unnötigem "Stress" in Übertragung und Verarbeitung führt.
Statt die Zahl "Null" als "0" zu übertragen wird "0.00000000" übertragen.
Gibt es in PureBasic eine Funktion die nur die notwendigen Ziffern übergibt?
Gruß
Daffy
Zahlenausgabe in kleinstmöglicher Zeichenzahl
Zahlenausgabe in kleinstmöglicher Zeichenzahl
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Zahlenausgabe in kleinstmöglicher Zeichenzahl
RTrim()
Code: Alles auswählen
Define Double.d
Double = 0.25
Debug RTrim(StrD(Double,20),"0")
Double = #PI
Debug RTrim(StrD(Double,20),"0")PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Zahlenausgabe in kleinstmöglicher Zeichenzahl
@Stargate
Klar!
Ich hätte jetzt rückwärts die Nullen "rausgegknackt"
Tausend Dank
Klar!
Ich hätte jetzt rückwärts die Nullen "rausgegknackt"
Tausend Dank
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Zahlenausgabe in kleinstmöglicher Zeichenzahl
Verbesserte Variante (frisst auch die unnötigen Dezimalpunkte)
Code: Alles auswählen
Wert$ = RTrim(StrD(Wert.d, 20), "0")
Wert$ = RTrim(Wert$, ".")
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert